Cambiar la entrada de audio de la llamada

Esta guía explica cómo cambiar la entrada de audio de la llamada con el Vonage Client SDK. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación y (Android, iOS, JS) y podrá hacer o reciba llamadas.

NOTA: Actualmente no hay compatibilidad con el enrutamiento de la salida de audio en los navegadores móviles ni en Safari, por lo que los ejemplos de JavaScript que se muestran a continuación solo son aplicables a los navegadores de escritorio, tal y como se detalla en este tabla de compatibilidad.

Android

¿Hay alguna forma de cambiar el método de entrada en Android?

iOS

¿Hay alguna forma de cambiar la entrada para iOS?

JavaScript (ordenador de sobremesa)

¿Se puede cambiar la entrada en los navegadores móviles?

Obtener dispositivos de entrada de audio

Antes de intentar cambiar los dispositivos de entrada de audio, debes comprobar de qué dispositivos dispones:

const audioInputDevices = await navigator.mediaDevices.enumerateDevices().then(devices => devices.filter(d => d.kind == "audioinput"));

Cambio de dispositivos de entrada de audio

NOTA: Debe haber una llamada en curso para poder cambiar el dispositivo de entrada de audio.

Con el ID de llamada actual, puedes obtener la conexión entre pares mediante el Client SDK:

// After creating a session
const pc = client.getPeerConnection(curentCallId);

A continuación, obtendrás la pista de audio de la transmisión local procedente del dispositivo de entrada que hayas seleccionado:

const localStream = await navigator.mediaDevices.getUserMedia({
     audio: { deviceId: { exact: deviceId } }
   });
const [track] = localStream.getAudioTracks();

Por último, sustituirás la pista del emisor de la conexión entre pares —que se encarga de enviar el audio a la llamada— por la pista de audio local procedente del dispositivo de entrada que hayas seleccionado:

const sender = pc.getSenders().find(sender => sender.track.kind === track.kind);
sender.replaceTrack(track);

¿Debo crear una aplicación de muestra y colocarla en el repositorio GitHub de Vonage Community?

Referencia