Volumen de audio de Android webRTC

Estoy usando la aplicación APPRTCdemo en android. Estoy tratando de hacer que reproduzca el sonido procedente de los otros pares tan fuerte como el volumen se establece en la configuración de Android. Así que si el usuario silenció el dispositivo, el audio no se escucharía. He intentado casi todas las llamadas de la API de Android, pero nada parece tener ningún efecto en el volumen. Estas son las cosas que he intentado: AudioManager audioManager = (AudioManager) _context.getSystemService (Context.AUDIO_SERVICE); Int volumen = audioManager.getStreamVolume (AudioManager.STREAM_VOICE_CALL);

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); 

3 Solutions collect form web for “Volumen de audio de Android webRTC”

Si desea silenciar el flujo, puede hacer lo siguiente:

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

En caso de que tenga más de una pista de audio en la secuencia, puede ponerla en un bucle. Esto es código probado y mute / unmute está funcionando absolutamente bien.

Si desea simplemente silenciar el audio puede utilizar smth como la siguiente construcción:

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

En el código fuente de webrtc puede encontrar src / webrtc / modules / audio_device / android / java / src / org / webrtc / voiceengine / WebRtcAudioTrack.java que utiliza

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

Código para cambiar el volumen (y creo que debería funcionar bien). Así que su problema podría estar en cualquier otro lugar.

Yo estaba enfrentando el mismo problema. No encontré ninguna documentación sobre ello, pero me di cuenta de que no se puede silenciar el flujo AudioManager.STREAM_VOICE_CALL . Incluso si ajusta el volumen a 0, todavía puede oírlo.

No sé si esta parte de Android o una modificación hecha por los fabricantes, pero he probado varios teléfonos y tabletas que tenían el mismo comportamiento.

Esto puede probarse muy fácilmente si intenta silenciar el audio durante una llamada telefónica, puede presionar la tecla de reducción de volumen tanto como desee, pero no le permitirá silenciarla completamente.

Supongo que la idea detrás de todo esto es evitar que los usuarios piensen que las llamadas no funcionan correctamente cuando el único problema es que el audio está silenciado.

  • Alternativa a getUserMedia () para la lectura de flujo de cámara en vivo en iOS?
  • WebRTC cambia de nuevo a la cámara frontal con gUM no transmitiendo en Android / Chrome
  • Android: Grabación y transmisión simultánea
  • WebRTC llega a Android WebView? ¿Cuando?
  • Creación de una aplicación mediante la demostración WebRTC AppRtc
  • Native Android WebRTC aplicación de desarrollo
  • WebRTC Native API para Android
  • Servidor AppRTC devuelve html en lugar de Json
  • WebRTC en Android
  • WebRTC con PeerJS - Funcionará en aplicaciones Android e IOS
  • Android WebRTC personalizar la vista remota y local
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.