访问 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 远程控制事件的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式访问 java 密钥库以创建 SSLSocketFactory

我可以使用隐藏的 API 访问 iPod 库吗?

无法访问 iPod 库路径

AddMusic 示例 Ipod 库访问 [关闭]

访问 iPod 上的播放列表

IOS - 从 Ipod 访问音频流、暂停和更改音量