我花了两天的时间,一无所获。我正在尝试使用[mpmusicplayercontroller ApplicationMusicClayer]来播放从用户的iPod库中选择的音频,并在后台运行并支持远程事件。现在让音乐真正播放是简单的部分。获取实例,选择歌曲,分配音乐队列并播放。完成并完成了。但是... a)我无法在后台播放,b)即使在前景中,我也无法让遥控事件完全工作!

在您问之前,是的,我已经设置了PLIST条目,音频会话类别,说我有兴趣获得远程事件并设置第一名响应者来聆听它们,所以请知道,是的,我'请阅读阅读有关我可以找到的主题的每个文档*(*我责备苹果的任务是因为在这个主题上根本不清楚,也没有任何示例代码!)与之相关的WWDC视频(甚至将屏幕冻结以准确地从他们的示例中复制代码...),除非我错过了一些东西 不在此列表中, ,对这些答案的答复无济于事。

还有一件事...我明确地谈论使用MPMusicPlayerController,根据DOCS,它从未使用应用程序会话。它总是使用系统会话。 (也许这本身就回答了我的问题,但是文档并没有清楚地说,所以我不确定,因此这个问题。)

也就是说,两天后,我的想法就是这样:

  1. 当使用MPMusicPlayerController时,无论您称之为哪种方法或设置的PLIST条目,您的应用程序将永远不会在后台运行。时期。如果您使用ipodmusicplayer实例,音乐会不断播放,但这是因为它是iPod播放的,而不是您的应用程序。如果您使用ApplicationMusicClayer实例,则在进入后台时,您的音乐停止。在这两种情况下,您的应用程序都被暂停。

  2. 无论您使用ipodmusicplayer或ApplicationMusicClayer实例,所有远程事件都均访问iPod应用程序本身,而不是您的应用程序,即使您已经明确要求它们。如果您使用的是ApplicationMusicClayer实例,并且使用遥控器选择“ Play”,则iPod应用程序会接收命令,因此您的音频避开并被中断,并且在iPod应用程序中开始播放。如果您选择了ipodmusicclayer,那么当然,这并不重要,因为您已经明确地说,您基本上只是有兴趣远程控制iPod应用程序,这再次是实际接收远程事件的内容。

  3. 快速开关控件中的图标在底部永远不会更改您的应用程序图标,因为再次,您的应用程序再也没有设置为接收事件。 iPod应用程序是,这就是为什么其图标确实出现在那里的原因。

所以我想知道的是...我在这里错了吗?是否有人成功地使用mpmusicplayercontroller并能够拦截远程事件?虽然我更喜欢在背景音乐支持中使用ApplicationMusicClayer,因此我不喜欢用户的iPod,但更大的事情是远程控制通知,这意味着如果我必须使用ipodmusiccontrol并将我的应用保持在前景中才能拦截那些消息,这样。那样丑陋,但至少是东西。

代码示例,或至少针对内置应用程序模板之一的明确步骤将不胜感激。 (甚至不需要实施……只是步骤。希望这会安抚人们不断回答问题的“仍然是NDA的事情”。)

标记

有帮助吗?

解决方案

我解决了。该信息在我的另一个问题上...

堆栈溢出:在接收遥控事件时播放iPod音乐

...但是简短的版本是您必须使用Avplayer(但不知道Avaudioplayer。可混合!),并在您的信息中添加适当的键。请告诉OS您的应用程序要支持背景音频。

这使您可以从iPod库中播放项目(由于某种原因,Audible.com文件除外!),并且仍然获得远程事件。当然,您必须做更多的工作,因为这是您的音频播放器,它与与iPod应用程序分开(可能是理想的也可能是不可能的。再一次,请勿启用混音或iPod应用程序将劫持遥控事件),但这是休息时间!

其他提示

对于任何想知道的人,我发现要在后台进行音频播放,您必须将音频会话的类别设置为可播放,然后背景音频效果很好。如果您也想同时播放自己的声音,则必须将类别标记为可混合的。解决了背景音乐部分。但是我发现的是iPod播放的任何时候,您似乎不可能获得远程通知。

这是更新的线程...

在您的应用程序中仍在接收遥控事件的同时,如何从iPod应用程序中播放音乐?

m

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top