java - 无法在安卓手机上禁用麦克风
问题描述
我想创建一个应用程序,只能通过按住耳机暂停按钮让麦克风声音通过。
我正在尝试使用以下代码使麦克风静音:
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setMicrophoneMute(true);
但是当执行此代码时,麦克风仍然可以工作,任何人都可以帮我禁用麦克风吗?而且当应用程序在后台运行时,它仍然需要禁用麦克风。
解决方案
private void setMicMuted(boolean state){
AudioManager myAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
// get the working mode and keep it
int workingAudioMode = myAudioManager.getMode();
myAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
// change mic state only if needed
if (myAudioManager.isMicrophoneMute() != state) {
myAudioManager.setMicrophoneMute(state);
}
// set back the original working mode
myAudioManager.setMode(workingAudioMode);
}
推荐阅读
- java - 具有一些共同属性但没有遗产的两个类
- java - Squish test_suite Java 错误“无法确定 '/suite_first/suite_first/tst_case1/test.js' 的 URI。”
- python - 同时循环多个shell脚本的脚本
- laravel - 我该如何解决这个错误(ErrorException Trying to get property 'warehouse' of non-object)
- parameter-passing - Datastage 增量计费
- c# - C# Dapper:从存储过程中获取多个结果集?
- typescript - vue中如何在tsconfig中设置路径
- c# - 客户端不会从服务器获得生成的游戏对象,反之亦然
- python - Python中置换编程挑战“山羊”的困难
- javascript - 根据视口宽度设置初始常量反应js