正如标题所示,我希望在连接呼叫之前将声音静音。我通过以下代码设置流:
mAudioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
并尝试代码:
mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0, 0);
它可以使声音最低,但不是沉默。还有一个小声音。如果我这次播放另一首音乐,他们会混在一起。我不想要这种适应。
有人有任何想法可以避免这个问题吗?非常感谢。
答案 0 :(得分:1)
给你:
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)
答案 1 :(得分:0)
我认为我的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);