iPhone - 我的应用程序的音频播放器是什么?

Mat*_*att 5 volume avfoundation avaudioplayer mpmusicplayercontroller ios

我正在设计一个音乐应用程序,播放用户的iPhone音乐库中的音乐,我在确定哪个音频播放器是正确的音频播放器(AVAudioPlayer,AVPlayer或MPMusicPlayer)时遇到了问题.

我的应用需要执行以下操作:

  • 播放iPhone音乐库中的音乐
  • 与设备/系统音量分开控制应用音乐音量
  • 当应用移动到后台时继续播放应用音乐
  • 当歌曲改变为下一首歌曲或结束时捕捉事件

从我的研究看来,上面提到的三个音频播放器中的每一个都可以完成我的应用程序所需的一些任务,但是没有一个能完成所有这些任务.AVPlayer似乎最接近,除了它的音量取决于设备/系统音量.

有没有人有任何建议或解决方法来实现这一目标?我已经相当长时间地嘲笑我的大脑了,所以任何帮助都会受到赞赏.

Dan*_*maa 1

编辑

MPMusicPlayerController 类在通过 获取它的实例时实际上并不支持播放背景音频+ applicationMusicPlayer。那么,最好的选择就是简单地使用 MPMusicPlayer 来查询 iPod 音乐库。一旦用户选择了一首歌曲,MPMediaItem就可以查询结果的资源 URL 并将其输入到 AVPlayer 中+playerWithURL,从而使您可以完全控制播放参数。

--

我会推荐 MPMusicPlayerController。

  1. MPMusicPlayerController 处理 iTunes 库中播放音频文件的低级细节。
  2. 您可以使用类方法-applicationMusicPlayer获取 iPod 单例的本地副本;从那里,您可以通过volume仅为您的应用程序设置其属性来控制其音量。
  3. 我假设 MPMusicPlayerController 已经内置了背景音频支持。如果没有,您可以更改应用程序的音频会话上下文以使其正常工作(请Playing background audio参阅http://www.sagorin.org/2011/11/29/ios -在背景音频中播放音频/
  4. 您可以将任何您选择的对象设置为特定于应用程序的MPMusicPlayerController对象的 KVO 观察者。这样,每当nowPlayingItem属性发生更改时,您都可以收到通知。

希望这个高级描述已经足够了。如果您需要任何进一步说明,请告诉我。