当应用程序进入后台时,如何在自定义应用程序中播放iPod中的音乐

4
我正在开发一款音乐应用程序,即使该应用程序进入后台,音乐仍然可以继续播放,并使用beginReceivingRemoteControlEvents,使用户可以通过在其iPhone / iPad上两次点击主页按钮来控制播放状态。
我查看了Apple开发的“Music App”示例,其中它使用MPMusicPlayerController从iPod库中获取歌曲,但是当该应用程序进入后台时,它会立即停止播放歌曲,并且不支持beginReceivingRemoteControlEvents
我查阅了一些文章,其中提到要使用AVPlayer,但它不支持从iPod Library获取音乐,因此我无法解决如何在应用程序进入后台时播放音乐并进行远程事件控制的问题。

有人能帮我解决这个问题吗? - orgami
你是否已经在UIBackgroundModes中使用“audio”键,将你的应用程序注册以在后台运行? - Jesse Gumpo
1个回答

4
iPodMusicPlayer可以在后台播放,但是通过iOS iPod Music Player进行。你的应用程序不会在后台接收通知。为此,您需要设置一个AVAudioSession并使用AVPlayer播放。点击此处获取更多信息苹果提供了很好的资源。从苹果文档中可以看到:“使用MPMusicPlayerController对象或音乐播放器从设备iPod库播放媒体项目。有两种类型的音乐播放器: 应用程序音乐播放器在应用程序内部播放音乐。它不知道iPod应用程序的正在播放的项目,也不影响iPod状态。iPod音乐播放器代表您使用内置iPod应用程序。在实例化时,它承担当前iPod应用程序状态,例如now-playing item的标识。如果用户在播放音乐时切换到您的应用程序之外,那么音乐将继续播放。然后iPod应用程序具有您的音乐播放器最近设置的重复模式、随机播放模式、播放状态和now-playing item。”请确保您正在使用。
+ iPodMusicPlayer

而不是

+ applicationMusicPlayer

这里有一篇关于如何将库导入AVAudioSession的好文章

在info.plist文件中添加一行,名称为"UIBackgroundModes" 将"音频"输入为第一个键。

UIBackgroundModes


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接