4

我正在开发一个音乐应用程序,即使应用程序进入后台并使用,音乐也会继续播放,beginReceivingRemoteControlEvents以便用户可以通过在他的 iPhone/iPad 上单击两次主页按钮来控制播放的状态。

我浏览了由 Apple 开发的“音乐应用程序”示例,它使用MPMusicPlayerController它从 iPod 库中获取歌曲的位置,但是一旦应用程序进入后台并且不支持beginReceivingRemoteControlEvents.

我查看了几篇说使用 AVPlayer 的文章,但它不支持从 iPod 库中获取音乐,所以我被困在如何在应用程序进入后台时播放音乐并且它是通过 remoteEvents 控制的。

4

1 回答 1

4

iPodMusicPlayer 将在后台播放,但通过 iOS iPod Music Player。您的应用不会在后台收到通知。为此,您需要设置一个 AVAudioSession 并使用 AVPlayer 播放。

在这里查看更多信息

苹果在这里有很好的资源

来自苹果文档:

使用 MPMusicPlayerController 对象或音乐播放器来播放设备 iPod 库中的媒体项目。有两种类型的音乐播放器:

应用程序音乐播放器在您的应用程序中本地播放音乐。它不知道 iPod 应用程序正在播放的项目,也不影响 iPod 状态。

iPod 音乐播放器代表您使用内置的 iPod 应用程序。在实例化时,它采用当前 iPod 应用程序状态,例如正在播放的项目的标识。如果用户在播放音乐时离开您的应用程序,该音乐将继续播放。然后,iPod 应用程序会显示您的音乐播放器最近设置的重复模式、随机播放模式、播放状态和正在播放的项目。

确保您正在使用

+ iPodMusicPlayer

并不是

+ applicationMusicPlayer

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

在 info.plist 文件中添加一行,名称为“UIBackgroundModes” 输入“audio”作为第一个键。

UIBackgroundModes

于 2012-07-10T06:06:29.247 回答