[英]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.