在app关闭或在后台运行时在特定时间播放mp3文件的事件

时间:2016-02-17 15:16:27

标签: ios objective-c swift

我在IOS申请穆斯林祷告,

当我点击按钮时,我已经播放了mp3文件

这是我的代码

super.viewDidLoad()

        let tapSound = NSBundle.mainBundle().URLForResource("mp", withExtension: "mp3")

        self.soundFileURLRef = tapSound

        do {
            player = try AVAudioPlayer(contentsOfURL: soundFileURLRef)
        } catch _ {
            player = nil
        }
        player?.delegate = self
        player?.prepareToPlay()
    }

    @IBAction func play(sender: AnyObject) {
        NSLog("started playing")
        player?.play()
    }


    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
        //
        NSLog("finished playing")
    }

它的工作完美

现在我正在寻找一种在特定时间播放mp3文件的方法,如

  

时间是12:00 AM播放mp3文件

即使申请已关闭

如何在IOS中提出这个建议?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

要安排此类活动,您可以使用Local Notifications。当应用未打开时,all (that I know of) alarm clock apps会提醒您 。但是,本地通知只允许您播放与应用程序捆绑在一起的30秒(最大)声音片段。

目前无法让您的应用播放音乐作为后台服务,除非它当前处于打开状态(或者如果您选择退出多任务处理,则在您锁定屏幕时打开...请参阅上述链接)。

但是,内置闹钟应用可以执行此操作,因为它使用的是私有API。

答案 1 :(得分:0)

本地通知按照此处的建议工作,但您应该记住,没有100%保证在您安排通知时会准确触发通知。根据工作负载,操作系统可以延迟一段时间(可能会从几秒钟变为几分钟)。只是想指出这一点,因为祷告时间非常精确;)