【问题标题】:Objective-C: Change iOS headphones buttons actionsObjective-C:更改 iOS 耳机按钮操作
【发布时间】:2015-09-26 01:41:13
【问题描述】:

我需要在 iOS 耳机按钮上绑定自己的操作。

对于播放/暂停动作,我找到了解决方案:

  • 在 .xcodeproj 中添加音频背景
  • 实现方法remoteControlReceivedWithEvent
  • 将自己设置为 firstResponder

我无法将我的班级设置为第一响应者,因为我的班级是 UIViewController 的子类。对于这个方法类必须是 UIResponder 的子类。所以我把这个方法放在 AppDelegate 中并创建通知。

1.有没有其他方法可以将 remoteControlReceivedWithEvent 放在我的类中,而不更改超类或使用通知?

2。我可以更改音量增大/减小动作吗?

【问题讨论】:

  • 我们说的是哪个操作系统?
  • iOS 7.1 +。在 Xcode 6.3 中工作

标签: ios objective-c headphones


【解决方案1】:

说实话,我认为这是一个灰色地带。我个人认为,如果您更改这些按钮的功能,您的应用将因违反指南 10.5 而被 Apple iOS App Store 审核流程拒绝。但是,我也不相信 Apple 会使用耳机测试您的应用程序,除非您明确声明您的应用程序需要耳机才能正常工作。虽然如果您的应用需要耳机来访问某些功能并且您没有告诉 Apple,因此他们没有对其进行测试,他们发现这可能会因为不诚实而导致您的帐户被封。

所以老实说,根据审查指南,我会说这是不可能的,因为已经说明的原因,我还认为您需要访问一些私有 API 才能真正实现这一点。所以也会在 2.5 下被拒绝。

2.5 使用非公开 API 的应用将被拒绝

10.5 改变标准开关功能的应用程序,例如音量增大/减小和响铃/静音开关,将被拒绝

因此,如果您要继续这样做,我会非常谨慎地了解您 (1) 为实施它所做的工作以及 (2) 在 Apple 进入审核流程时您告诉 Apple 的内容。如果是我,我会告诉 Apple 这些按钮背后有功能。

但是我真的认为这不会通过 2.5 的审核流程,不介意达到 10.5

【讨论】:

  • remoteControlReceivedEvent 是一个公共 API(已弃用,您应该使用 MPRemoteCommandCenter),实现自己的音频播放的人使用它(下一首/上一首曲目,快进等)。但是,您不会收到音量控制信息。
  • @gasher729 这很公平,我更像是一个警告,因为它是一种灰色区域,因为您正在更改标准开关的功能和/或音量增大/减小但是该指南是否涵盖耳机?我的回答只是为了提供一个警告,让他们谨慎行事,因为 Apple 可能(大可能)采取了错误的方式。
  • @gnasher729 我尝试使用 MPRemoteCommandCenter 但有问题:我为命令设置了操作,如果一段时间(近 2-3 分钟)不使用它,它会停止反应。在文档link 中说:事件传递仅在您的应用程序是正在播放的应用程序时发生。据我了解,我需要在 MPNowPlayingInfoCenter 中设置非零对象?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多