向Swift iOS应用添加背景音乐的最简单方法是什么?

时间:2017-11-25 22:19:21

标签: ios audio

我已将位置音频和交互式音频添加到ARKit,SceneKit游戏,但现在我只想添加在应用程序运行和打开时播放的背景音频,并在应用程序关闭或在后台停止。我可以使用SceneKit声音或媒体播放器,但似乎必须有一个更简单的方式?然而,我只是发现了这些更复杂的选项,而且我不想对这个应用程序中的任何函数使用过度杀伤的东西。有没有人知道是否有一个非常简单的机制来播放背景音乐?

1 个答案:

答案 0 :(得分:1)

AVPlayer非常简单。这是我从URL或文件名扩展到init并循环音频:

extension AVPlayer {
    convenience init?(url: URL) {
        let playerItem = AVPlayerItem(url: url)
        self.init(playerItem: playerItem)
    }
    convenience init?(name: String, extension ext: String) {
        guard let url = Bundle.main.url(forResource: name, withExtension: ext) else {
            return nil
        }
        self.init(url: url)
    }
    func playFromStart() {
        seek(to: CMTimeMake(0, 1))
        play()
    }
    func playLoop() {
        playFromStart() 
        NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.currentItem, queue: nil) { notification in
            if self.timeControlStatus == .playing {
                self.playFromStart()
            }
        }
    }
    func endLoop() {
        pause()
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self)
    }
}