【发布时间】:2019-02-27 15:11:33
【问题描述】:
我正在尝试编写一个 IOS 应用程序来播放我的 iPhone 音乐库内容、显示艺术作品以及“宣布”标题、艺术家等。
我使用 Apple 的 Media Player 框架让它运行良好。我可以显示播放列表名称并将歌曲排列在选定的播放列表中。 我使用“MPMusicPlayerControllerNowPlayingItemDidChange”观察者通知来暂停播放、检索元数据并通过 AVSpeechSynthesizer 进行公告。 在遇到可怕的“媒体播放器框架在后台不响应观察者通知”问题之前,我一直是个快乐的露营者。
所以,我开始研究 AVFoundation 框架。我发现了一个通过后台 URL 播放本地歌曲文件的示例。 我在尝试通过 AVFoundation 检索音乐库内容时失败了。 我也未能将通过媒体播放器框架检索到的内容提供给 AVFoundation 播放器。 (注意:从 MPMediaItem 检索到的 URL 是伪造的“ipod-library://item/item.m4a?id=################### #####”格式。用这个“URL”创建AVPlayerItem是行不通的。)
有没有人设法做到这一点?我正在开发自己的用途。我无意在 Apple 的 App Store 中发布该应用,因此我愿意使用隐藏的 API 或未经 Apple 批准的方法。
一个 Swift 代码示例会很棒。 (Objective-C 没那么多)
【问题讨论】:
标签: ios swift avfoundation audio-player background-music