5

我正在设计一个从用户的 iPhone 音乐库播放音乐的音乐应用程序,但在确定哪个音频播放器适合它(AVAudioPlayer、AVPlayer 或 MPMusicPlayer)时遇到问题。

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

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

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

有没有人有任何建议或解决方法来实现这一点?我已经为此绞尽脑汁已经有一段时间了,所以任何帮助都将不胜感激。

4

1 回答 1

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属性更改时收到通知。

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

于 2012-07-03T16:25:36.857 回答