【发布时间】:2011-10-16 00:51:41
【问题描述】:
我一直在尝试使用 Android 的 AudioManager.setMicrophoneMute(),但没有取得多大成功。也就是说,无论我做什么,它都拒绝让麦克风静音。
我在网上搜索了一些线索,并找到了一些报告类似经历的参考资料:
- AudioManger.setMicrophoneMute functionality not working??
- setMicrophoneMute(boolean) doesn't work on some devices
- Unable to mute the microphone in Android
这引出了一个问题:AudioManager.setMicrophoneMute() 是否有效?它只是一个存根方法,等待在未来的 Android 版本中实现吗?如果没有,它是如何工作的?我需要什么才能让它工作?顾名思义,它发挥作用的条件是什么?
编辑:我注意到这个方法的文档说:
此方法只能由替换 音频设置或主电话的平台范围管理 应用。
这是什么意思?为什么要替换平台范围的管理?我真的需要这样做吗?如果是这样,我该怎么做?
编辑:下面的答案很好,但我还是不明白:
- 如何使用该标志(数据库中的 SET_MIC_MUTE)?
- 此标志何时真正断开麦克风信号与 手机内部的前置放大电路?
- 如果它不这样做,那是谁做的?
- 如果不这样做,这个“静音”应该如何工作?
请解释一下。谢谢。
【问题讨论】:
-
我确定您必须拥有 - 但您是否启用了
checkAudioSettingsPermission测试的权限? -
@YetAnotherUser 我检查了checkAudioSettingsPermission 的“文档”,除了返回一个布尔值外,没有任何关于它的作用以及它期望在字符串参数中接收什么的线索。我真的不想将问题从
setMicrophoneMute()更改为checkAudioSettingsPermission,但是您知道checkAudioSettingsPermission的作用以及String参数的含义是什么吗? +1 -
您可能想要概述您最初想要实现的目标。听起来你有点跑题了。您可能不想更换电话应用程序,也不应该更换(顺便说一句,如果没有平台证书,您也不能这样做)。
-
@marsbear 我真的不想替换任何东西。 :) 我要做的就是静音麦克风。 Android 有一个声称可以做到这一点的功能(实际上是其中的 4 个,如下所示,由唯一一个敢于回答的人显示),但它不起作用。我是什么做的? +1 试图提供帮助。
-
@Smugrik 当然,我在清单中有 MODIFY_AUDIO_SETTINGS 和 RECORD_AUDIO 权限。我认为这是通过提供引用这些设置的第一个链接来暗示的。
标签: android microphone android-audiomanager