访问 iPod 库以使用 AVAudioPlayer 或使用 AVPlayer 远程控制事件
Posted
技术标签:
【中文标题】访问 iPod 库以使用 AVAudioPlayer 或使用 AVPlayer 远程控制事件【英文标题】:Accessing iPod library for use with AVAudioPlayer or remote control events with AVPlayer 【发布时间】:2012-02-22 17:44:42 【问题描述】:我在这里阅读了很多主题,但还没有遇到正确的主题。 explained 很好,AVAudioPlayer
无法播放 iPod Library 中的文件,但这是否意味着根本没有办法?
AVPlayer
允许您这样做,但我的问题是您无法在后台接收远程控制事件。这是我到目前为止所读到的内容,但奇怪的是:我在 App Store 中遇到了几个应用程序,它们允许您访问您的 iPod 库并在应用程序和后台播放您的音乐.它不使用MPMusicPlayerController
,因为它不使用音乐应用程序播放歌曲,也不会在进入后台时停止(应用程序的图标也出现在多任务栏中)。此外,您可以在后台控制应用程序(播放/暂停/下一个/上一个/卷等)。这个应用程序的音量以某种方式与 iPod 音乐播放器的音量“同步”,我只能假设它已经注册了MPMusicPlayerControllerVolumeDidChangeNotification
的音量变化通知。
我的问题是:
1. 他们是怎么做的,他们用的是什么类?如果他们正在访问 iPod 库,那么它必须是 AVPlayer
。但是你不能用AVPlayer
(除了playerItemDidReachEnd
)接收远程控制事件,所以它必须是AVAudioPlayer
。但是您无法使用AVAudioPlayer
播放您的 iPod 库
2. 他们如何使用 iPod 库中的音量设置,以及他们如何保持“同步”。
This thread answer 声称可以使用AVPlayer
访问 iPod 库并且仍然可以接收外部事件/通知。这怎么样?他是否只是注册了您通常会使用 AVAudioPlayer
类进行的事件?
对此非常困惑。希望得到一些指导。
【问题讨论】:
【参考方案1】:对于任何寻找答案的人,我找到了一个很棒的教程right here,它几乎可以让你走上正确的道路。您必须使用AVPlayer
,但创建音频会话的方式与使用AVAudioPlayer
相同。此外,您需要启用远程事件并将主视图控制器设置为第一响应者。教程中对此进行了很好的解释。
【讨论】:
【参考方案2】:AVAudioPlayer 现在从 ios6 开始支持 iPod 媒体库 URL。
https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS6.html#//apple_ref/doc/uid/TP40011812-SW1
【讨论】:
以上是关于访问 iPod 库以使用 AVAudioPlayer 或使用 AVPlayer 远程控制事件的主要内容,如果未能解决你的问题,请参考以下文章