在 iOS7 到来之前,我们注意到一个问题:remote-control
即使我们将类别设置为solo-ambient
或其他独占模式,来自耳塞或跳板的音乐也会劫持我们的音频会话。
因此,我们尝试了一些事情:
我们试图收回音频会话的所有权。但这要求我们的音频代码知道何时将其取回以及从谁那里取回。我们认为我们可以让应用程序代码成为远程控制事件的第一响应者,做我们的事情,然后将事件传递给音乐应用程序。但是,我们发现事件被第一响应者扣留,无法将其推回命令链。
当我们在
solo-ambient
. 这适用于 iOS6,仍然适用于 iOS7 中的耳塞控制,但适用于 iOS7 的control center
.control center
似乎完全绕过了remote-control
事件处理程序,remoteControlReceivedWithEvent
我们将阻塞代码放在那里。
我在其他地方读到了一些东西:
您无法阻止音乐应用。您的应用程序可以成为一个(苹果不会喜欢那样),然后控制中心将控制您的应用程序。
但我没有找到任何关于control center
. 如上所述,即使应用程序是第一响应者,控制中心也不会进入正常的远程控制挂钩。
另一个报价P
远程控制事件处理是为了让您的应用程序可以通过控制中心、耳塞等进行控制……而不是让您的应用程序可以吃掉上述控件,从而阻止从上述来源控制其他应用程序。由于 iOS 中的一个错误,它只在 iOS6 中有效,现在在 iOS7 中修复
是不是因为这个错误?我很难相信,因为我们在这个列表和 Xcode 邮件列表中找到了解决方案,所以我认为这是一个公认的解决方案。
现在我们真的想知道我们是否从一开始就遗漏了一些东西:
真的solo-ambient
是音频会话的独占模式,还是音乐应用程序是这种独占性的例外?
remote-control
我们的应用程序如何与, 和和谐相处control center
?
remote-control
我们在哪里可以找到和的最新文档control center
?