2015-07-27 18 views
5

Ich benutze APPRTCdemo App auf Android. Ich versuche, den Sound von dem anderen Peer so laut wie die Lautstärke in den Android-Einstellungen zu spielen. Wenn also der Benutzer das Gerät stummgeschaltet hat, war das Audiosignal nicht zu hören. Ich habe so ziemlich jeden Android-API-Aufruf ausprobiert, aber nichts scheint sich auf das Volume auszuwirken. Das sind die Dinge, die ich ausprobiert habe: AudioManager audioManager = (AudioManager) _context.getSystemService (Context.AUDIO_SERVICE); int volume = audioManager.getStreamVolume (AudioManager.STREAM_VOICE_CALL);Android webRTC Audiolautstärke

volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
    volume =audioManager.getStreamVolume(AudioManager.STREAM_RING); 
    volume =audioManager.getStreamVolume(AudioManager.STREAM_ALARM); 
    volume =audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION); 
    volume =audioManager.getStreamVolume(AudioManager.STREAM_SYSTEM); 

    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
    audioManager.setStreamVolume(AudioManager.MODE_IN_COMMUNICATION, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
    audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
    audioManager.setStreamMute(AudioManager.MODE_IN_COMMUNICATION, true); 
    audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 
    audioManager.setStreamMute(AudioManager.STREAM_RING, true); 
    audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true); 
    audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 

Antwort

0

Wenn Sie nur Audio stumm zu schalten Sie smth wie die folgende Konstruktion verwendet werden:

inputMediaStream.audioTracks.getFirst().setEnabled(false); 

im Quellcode von WebRTC Sie src/WebRTC/modules/audio_device/android/java finden/src/org/WebRTC/Voiceengine/WebRtcAudioTrack.java, die verwendet

audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, volume, 0); 

Code Lautstärke zu ändern (und ich denke, es funktioniert ok sollte). Ihr Problem könnte also irgendwo anders sein.

+1

Danke Alexey für Ihre Antwort. Wie ich in der Frage erwähnt habe, habe ich es versucht und es hat nicht funktioniert. –

0

Ich war mit dem gleichen Problem konfrontiert. Ich habe keine Dokumentation darüber gefunden, aber ich habe herausgefunden, dass Sie den Stream AudioManager.STREAM_VOICE_CALL nicht stummschalten können. Selbst wenn Sie die Lautstärke auf 0 einstellen, können Sie sie immer noch hören.

Ich weiß nicht, ob dieser Teil von Android oder eine Modifikation von den Herstellern gemacht, aber ich testete mehrere Telefone und Tablets, die das gleiche Verhalten hatten.

Dies kann sehr einfach getestet werden, wenn Sie versuchen, das Audio während eines Telefongesprächs stummzuschalten. Sie können die Lautstärketaste so oft drücken, wie Sie möchten, aber Sie können sie nicht vollständig stummschalten.

Ich denke, die Idee hinter all dem verhindert die Benutzer denken, dass die Anrufe nicht richtig funktionieren, wenn das einzige Problem ist, dass das Audio stummgeschaltet ist.

2

Wenn Sie den Stream stumm schalten möchten Sie folgendes tun:

RemoteStream.audioTracks.get(0).setEnabled(false); //in case you have only one audio track 

Falls Sie mehr als eine Audio-Tracks im Stream haben, können Sie es unter Schleife setzen. Dies ist ein getesteter Code und das Stummschalten/Stummschalten funktioniert absolut gut.