【问题标题】:Android how can I mute stream voice call compeletely?Android如何完全静音流语音通话?
【发布时间】:2015-01-27 03:20:03
【问题描述】:

正如标题所示,我想在通话接通前静音。我通过以下代码设置流:

mAudioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);

也可以试试代码:

mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0, 0);

它可以发出最低的声音,但它不是无声的。仍然有轻微的声音。如果我这次再播放一首音乐,它们会混合在一起。我不想要这套西装。

有没有人有任何想法来避免这个问题?非常感谢。

【问题讨论】:

  • 我的猜测是 Android 不允许这样做。如果您在通话过程中尝试手动将其完全调低,它也具有最小音量(至少在我的 M8 上)。也许你应该问问自己,你想通过静音来实现什么,以及是否可以通过其他方式实现。

标签: android stream call voice mute


【解决方案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)

【讨论】:

    【解决方案2】:

    我认为我的 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);
    

    【讨论】:

    • 实际上,当我拨打别人的电话时,我不想听到对方的任何声音。这时候我想播放我手机里的音乐,而不是听别人手机里的声音。通话接通后,我会停止播放音乐。
    猜你喜欢
    • 2021-11-21
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多