Ios4 在iOS 4上使用MPMusicLayerController支持后台音频和远程控制。这可能吗?
我花了两天的时间在这上面,却一无所获。我正在尝试使用[MPMusicLayerController应用程序MusicLayer]播放从用户的iPod库中选择的音频,并使其在后台运行,同时支持远程事件。现在让音乐真正播放是很容易的。获取实例,选择歌曲,分配音乐队列并播放。做了,做了。但是a) 我无法让它在后台播放,并且b)即使在前台,我也无法让遥控事件工作 在您提问之前,是的,我已经设置了plist条目、音频会话类别、呼叫,以表示我对获取远程事件感兴趣,并设置了第一响应者来收听这些事件,所以请知道,是的,我已经阅读了我能找到的关于此主题的所有文档*(*我责怪苹果公司在这个问题上一点也不清楚,也没有任何示例代码!)而且我已经观看了每一个与此相关的WWDC视频(甚至冻结屏幕以完全复制他们示例中的代码…)所以,除非我错过了清单中没有的东西,否则用这些答案中的任何一个来回答都不会有帮助 还有一件事……我要明确地说的是使用MPMusicLayerController,根据文档,它从不使用应用程序会话。它总是使用系统会话。(也许这本身就回答了我的问题,但文档没有明确地说,所以我不确定,因此这个问题。) 也就是说,两天后,我的想法是:Ios4 在iOS 4上使用MPMusicLayerController支持后台音频和远程控制。这可能吗?,ios4,ipod,mpmusicplayercontroller,remote-control,background-application,Ios4,Ipod,Mpmusicplayercontroller,Remote Control,Background Application,我花了两天的时间在这上面,却一无所获。我正在尝试使用[MPMusicLayerController应用程序MusicLayer]播放从用户的iPod库中选择的音频,并使其在后台运行,同时支持远程事件。现在让音乐真正播放是很容易的。获取实例,选择歌曲,分配音乐队列并播放。做了,做了。但是a) 我无法让它在后台播放,并且b)即使在前台,我也无法让遥控事件工作 在您提问之前,是的,我已经设置了plist条目、音频会话类别、呼叫,以表示我对获取远程事件感兴趣,并设置了第一响应者来收听这些事件,所以请知道
标记对于任何想知道的人,我发现要在后台播放音频,你必须将音频会话的类别设置为可播放,然后背景音频工作正常。如果你还想同时播放自己的声音,你必须将类别标记为可混合。这解决了背景音乐部分。但是我发现,无论何时播放iPod,您都不可能收到远程通知 这是更新的线程
我解决了它。信息在我的另一个问题中 …但简短的版本是,您必须使用AVPlayer(但不是AVAudioPlayer。不知道为什么!)和从库中获得的MPMediaItem中的资源URL,然后将音频会话的类别设置为可播放(不要启用可混合!)并向info.plist文件中添加相应的键,告诉操作系统您的应用程序希望支持背景音频
这使您可以播放iPod库中的项目(出于某些原因,Audible.com文件除外!),但仍然可以获取远程事件。当然,您需要做更多的工作,因为这是您的音频播放器,它与iPod应用程序分离,并将中断iPod应用程序(这可能是可取的,也可能不是可取的。同样,不要启用混音,否则iPod应用程序将劫持遥控事件)但这些都是休息时间!这家伙是怎么做到的???啊!!!嗨,你是如何在后台录制音频的?非常感谢你发布这篇文章!没问题。真让人沮丧的是,苹果没有更清楚地了解那里发生了什么。更让人沮丧的是(尽管出于DRM原因可以理解)你不能这样做音频文件,这破坏了我们的应用程序,因为这是我们的主要关注点。你能做什么呢!不过,很高兴这有帮助。