【问题标题】:Put iPhone mute On/Off programmatically. (Force Mute/UnMute)以编程方式将 iPhone 静音打开/关闭。 (强制静音/取消静音)
【发布时间】:2011-08-10 09:08:37
【问题描述】:

我正在创建一个调整,我想以编程方式“覆盖”静音/取消静音。

我完全知道这是 Apple 批准的。

我将如何处理这个问题?目前我只能这样设置音量:

AVSystemController *AVSysController = [objc_getClass("AVSystemController") sharedAVSystemController]; 
[AVSysController setActiveCategoryVolumeTo:0.0];

【问题讨论】:

  • 这是 Apple 认可的做法吗?
  • 不,Apple 不赞成“系统覆盖”代码。

标签: ios audio mute


【解决方案1】:

我会坚持改变音量(哎呀,存储它以前的音量,以便以后可以“取消”它)。由于有一个物理静音开关,如果开关显示手机已静音,而实际上您已自行取消静音(反之亦然),用户会感到困惑。

【讨论】:

  • 这是可以理解的,但不能回答我的问题。此外,在正常情况下,用户可能会感到困惑,但代码并不适用于正常情况。
  • 按照我的建议通过存储、归零和恢复音量来模拟静音有什么问题?这与用户真正的静音有区别吗?
  • 您不能将音量完全设置为零,此时将不会应用用户的设置(振动、闪烁等)。同样,不是我的问题的答案。
【解决方案2】:

没有。这不可能。由于有一个物理开关可用于将整个设备静音/取消静音,因此没有可用的软件方法。

即使有人尝试使用私有 API 进行操作,它也会与设备上可用的物理开关发生冲突。

可能只是为了尊重可用的物理开关,苹果故意不提供相同的软件API。

【讨论】:

  • 这是不可能的合法方式。但是使用私有api可以使设备静音..没有问题..但是如果您以编程方式使设备静音,则必须处理设备的物理开关。如何以编程方式处理物理开关?
  • 用你提供的github链接再次检查。它清楚地表明他们通过将音量降低到零来实现静音功能。他们实际上并没有使系统静音。使系统静音和将音量降低到零是两个不同的技术概念。首先想想你真正需要什么,你需要以合法或非法的方式。
  • 如果您想进一步讨论这个问题,这应该在聊天中完成,因为堆栈溢出不是论坛。
猜你喜欢
  • 2014-04-01
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多