【问题标题】:iOS7: Control center, remote-control, and CoreAudio audio session solo-ambient categoryiOS7:控制中心、远程控制和 CoreAudio 音频会话独奏环境类别
【发布时间】:2013-10-30 19:37:51
【问题描述】:

在 iOS7 到来之前,我们注意到一个问题: 来自耳塞或跳板的音乐remote-control 可以劫持我们的音频会话,即使我们将类别设置为solo-ambient 或其他独家模式。

因此我们尝试了一些方法:

  1. 我们试图收回音频会话的所有权。但这要求我们的音频代码知道何时将其取回以及从谁那里取回。我们认为我们可以让应用程序代码成为远程控制事件的第一响应者,做我们的事情,然后将事件传递给音乐应用程序。但是,我们发现事件被第一响应者扣留,无法将其推回命令链。

  2. 当我们在solo-ambient 时,我们试图成为第一反应者并一起阻止远程控制事件。这在 iOS6 上运行良好,在 iOS7 中仍然适用于耳塞控制,但在 iOS7 的control center 下失败。 control center 似乎完全绕过了 remote-control 事件处理程序 remoteControlReceivedWithEvent,我们在其中放置了阻塞代码。

我在其他地方读到了一些东西:

您无法屏蔽音乐应用。你的应用程序可以成为一个(苹果 不会喜欢的)然后控制中心会控制你的。

但我没有找到任何关于 control center 的文档。 而且如上所述,即使应用程序是第一响应者,控制中心也不会进入正常的远程控制钩子。

另一个引用P

远程控制事件处理使您的应用程序可以通过 控制中心、耳塞等等……不是让你的应用可以吃 所述控件,防止从所述来源控制其他应用程序。它 由于iOS中的一个错误,只能在iOS6中使用,现在在iOS7中修复了

是因为这个错误导致的吗?我很难相信,因为我们在这个列表和 Xcode 邮件列表中找到了解决方案,所以我认为这是一个公认的解决方案。

现在我们真的想知道我们是否从一开始就错过了什么:

solo-ambient 真的是音频会话的专有模式,还是音乐应用程序是这种专有性的例外?

我们的应用程序如何与remote-controlcontrol center 和谐相处?

我们在哪里可以找到remote-controlcontrol center 的最新文档?

【问题讨论】:

    标签: ios7 core-audio remote-control control-center


    【解决方案1】:

    在使用 iOS7 SDK 清理构建所有内容后,遥控器已神秘修复。现在应用代理可以从控制中心接收远程控制事件。但是,播放/暂停事件是 UIEventSubtypeRemoteControlPause 和 UIEventSubtypeRemoteControlPlay 而不是 iOS6 的 UIEventSubtypeRemoteControlTogglePlayPause。

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多