Android SDK использует для работы с WebRTC библиотеку libjingle_peerconnection. В библиотеке на уровне исходного кода установлено управление громкостью вызова (incall volume) при установке уровня громкости воспроизведения
private int SetPlayoutVolume(int level) { // create audio manager if needed if (_audioManager == null && _context != null) { _audioManager = (AudioManager) _context.getSystemService(Context.AUDIO_SERVICE); } int retVal = -1; if (_audioManager != null) { _audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, level, 0); retVal = 0; } return retVal; }
В связи с этим во всех приложениях на базе AndroidSDK при установке уровня громкости изменяется громкость во время вызова, а не громкость мультимедиа. Однако, существует возможность переключиться с гарнитуры на внешний динамик и микрофон устройства и обратно (см. пример Media Devices)