我还没遇到过正确的一个 . explained非常好 AVAudioPlayer
无法播放iPod库中的文件,但这是否意味着根本没有办法?
AVPlayer
允许您这样做,但我的问题是您无法在后台接收远程控制事件 . 这是我最奇怪的事情:我在App Store中遇到了几个应用程序,允许您访问iPod库并在应用程序和后台播放音乐 . 它不使用 MPMusicPlayerController
,因为它没有't use the Music app to play songs nor does it stop when entering the background (the app' s图标也出现在多任务栏中) . 此外,一旦's in the background (play/pause/next/prev/vol etc.). This app'音量以某种方式'synched'与iPod音乐播放器音量,您就可以控制应用程序,我只能假设它已经注册了有关音量变化的通知 MPMusicPlayerControllerVolumeDidChangeNotification
.
我的问题是:1 . 他们是如何做的以及他们使用的是什么课程?如果他们正在访问iPod库,那么它必须是 AVPlayer
. 但是您无法使用 AVPlayer
(除了 playerItemDidReachEnd
)接收远程控制事件,因此它必须是 AVAudioPlayer
. 但是你不能用 AVAudioPlayer
播放你的iPod库.2 . 他们如何能够使用iPod库中的音量设置,以及它们如何保持它'synched' .
This thread answer声称可以通过 AVPlayer
and 访问iPod库,但仍然可以接收外部事件/通知 . 这怎么样?他只是通过 AVAudioPlayer
类注册您通常会这样做的事件吗?
对此非常困惑 . 会很感激一些指导 .
2 回答
对于任何寻找答案的人来说,我找到了一个很棒的教程right here,几乎可以让你走上正确的道路 . 您必须使用
AVPlayer
,但创建一个音频会话的方式与AVAudioPlayer
相同 . 此外,您需要启用远程事件并将主视图控制器设置为第一响应者 . 在教程中对此进行了很好的解释 .AVAudioPlayer现在支持iOS6以来的iPod媒体库URL .
https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS6.html#//apple_ref/doc/uid/TP40011812-SW1