Ändern des Audioeingangs für Anrufe

In dieser Anleitung wird beschrieben, wie Sie die Audioeingabe für Anrufe mit dem Vonage Client SDK ändern können. Bevor Sie beginnen, stellen Sie sicher, dass Sie das SDK zu Ihrer App hinzugefügt haben und (Android, iOS, JS) und Sie sind in der Lage machen. oder erhalten Anrufe.

HINWEIS: Derzeit gibt es keine Unterstützung für das Audio-Output-Routing in mobilen Browsern und Safari, so dass die folgenden JavaScript-Beispiele nur auf Desktop-Browser anwendbar sind, wie in diesem Artikel beschrieben Kompatibilitätstabelle.

Android

Gibt es eine Möglichkeit, die Eingabe für Android zu ändern?

iOS

Gibt es eine Möglichkeit, die Eingabe für iOS zu ändern?

JavaScript (Desktop)

Kann man die Eingabe in mobilen Browsern ändern?

Abrufen von Audio-Eingabegeräten

Bevor Sie versuchen, die Audioeingabegeräte zu ändern, sollten Sie prüfen, welche Geräte Ihnen zur Verfügung stehen:

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

Ändern von Audio-Eingabegeräten

HINWEIS: Bevor Sie das Audio-Eingabegerät wechseln können, muss ein Gespräch geführt werden.

Mit der aktuellen Call-ID können Sie die Peer-Verbindung mit dem Client SDK herstellen:

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

Dann erhalten Sie die Audiospur des lokalen Streams von dem von Ihnen ausgewählten Eingabegerät:

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

Schließlich ersetzen Sie die Spur des Senders der Peer-Verbindung, die für das Senden des Tons in den Anruf verantwortlich ist, durch die lokale Audiospur des von Ihnen ausgewählten Eingabegeräts:

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

Soll ich eine Beispielanwendung erstellen und in das Vonage Community GitHub Repo stellen?

Referenz