Как отключить звук с помощью AudioManager? - PullRequest
0 голосов
/ 19 сентября 2018

Может кто-нибудь сказать мне, как отключить звук в Android (targetSdkVersion 26).Я попробовал это:

audioManager.setSpeakerphoneOn(false);

, но приглушает только динамик, а не динамик.
Я также попробовал это:

audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setStreamVolume(STREAM_VOICE_CALL, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

и это:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    am.requestAudioFocus(new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE)
              .setAudioAttributes(new AudioAttributes.Builder().setUsage(USAGE_VOICE_COMMUNICATION).build()).build());
    am.adjustVolume(AudioManager.ADJUST_MUTE, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}

с тем же эффектом.

Я работаю с webrtc, и моя цель - отключить / включить звук выходного аудио.Большое спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018

Вот как отключить / включить звук:

private RTCSession currentSession;

private void setAudioEnabled(boolean isAudioEnabled) {
    if (currentSession != null && currentSession.getMediaStreamManager() != null) {
        currentSession.getMediaStreamManager().getLocalAudioTrack().setEnabled(isAudioEnabled);
    }
}

А также, если вы хотите переключаться между различными источниками звука:

public void onSwitchAudio() {
    if (audioManager.getSelectedAudioDevice() != AppRTCAudioManager.AudioDevice.SPEAKER_PHONE) {
        audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE);
    } else {
        if (audioManager.getAudioDevices().contains(AppRTCAudioManager.AudioDevice.BLUETOOTH)) {
            audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.BLUETOOTH);
        } else if (audioManager.getAudioDevices().contains(AppRTCAudioManager.AudioDevice.WIRED_HEADSET)) {
            audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.WIRED_HEADSET);
        } else {
            audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...