[英]Android how can I mute stream voice call compeletely?
正如标题所暗示的那样,我想在呼叫接通之前将声音静音。 我通过以下代码设置流:
mAudioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
并尝试代码:
mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0, 0);
它可以使声音最低,但它并不安静。 还是有很小的声音。 如果我这次播放其他音乐,它们会混合在一起。 我不想要这个套装。
有没有人有任何想法可以避免这个问题? 非常感谢。
干得好:
val audioManager = getSystemService(AudioManager::class.java)
audioManager.mode = AudioManager.MODE_IN_CALL
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
AudioManager.FLAG_SHOW_UI, 0)
audioManager.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL,
AudioManager.ADJUST_TOGGLE_MUTE, 0)
audioManager.adjustVolume(AudioManager.ADJUST_MUTE, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE)
我认为来自我的 mp3 播放器的这段代码应该可以帮助你解决这个问题。
phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// String stateString = "N/A";
Log.v(TAG, "Starting CallStateChange");
switch (state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
case TelephonyManager.CALL_STATE_RINGING:
if (mp != null) {
mp.pause();;
isPausedInCall = true;
}
break;
case TelephonyManager.CALL_STATE_IDLE:
// Phone idle. Start playing.
if (mp != null) {
if (isPausedInCall) {
isPausedInCall = false;
initNotification();
mp.start();
}
}
break;
}
}
};
// Register the listener with the telephony manager
telephonyManager.listen(phoneStateListener,
PhoneStateListener.LISTEN_CALL_STATE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.