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