Sip.js: Lokales Mikrofon stumm schalten

Erstellt am 13. Dez. 2017  ·  11Kommentare  ·  Quelle: onsip/SIP.js

Hallo,
Kann man das lokale Mikrofon trotzdem stumm schalten?
Session.mute() scheint nicht zu funktionieren.
Mit freundlichen Grüßen,
Pjata

question

Hilfreichster Kommentar

in Version 0.15.0 ist es so gemacht worden

const pc: any = this.session.sessionDescriptionHandler.peerConnection
    pc.getSenders().forEach((stream: any) => {
      stream.track.enabled = false
    })

Alle 11 Kommentare

Sie müssen die lokalen Spuren von der peerConnection entfernen und dann die Spuren stummschalten. Dies liegt außerhalb des Anwendungsbereichs von SIP.js. Informationen zum Abrufen der Peer-Verbindung finden Sie in der Dokumentation zum

Ich habe es so gelöst:

session.getLocalStreams()[0].getAudioTracks()[0].stop()

session.getLocalStreams ist nicht aufwärtskompatibel mit 0.8+. Sie müssen die Peer-Verbindung abrufen und die Streams von der Peer-Verbindung abrufen.

also wie kann ich das machen?

Sie müssen die lokalen Spuren von der peerConnection entfernen und dann die Spuren stummschalten. Dies liegt außerhalb des Anwendungsbereichs von SIP.js. Informationen zum Abrufen der Peer-Verbindung finden Sie in der Dokumentation zum

ich habe es so gemacht

///mute
var pc = session.sessionDescriptionHandler.peerConnection;
pc.getLocalStreams().forEach(function (stream) {
    stream.getAudioTracks().forEach(function (track) {
        track.enabled = false;
    });
});

ich habe es so gemacht

///mute
var pc = session.sessionDescriptionHandler.peerConnection;
pc.getLocalStreams().forEach(function (stream) {
    stream.getAudioTracks().forEach(function (track) {
        track.enabled = false;
    });
});

Für alle, die das jetzt finden:
Chrome sagt, dass peerConnection.getLocalStreams() nicht mehr verwendet werden sollte. Verwenden Sie stattdessen:
peerConnection.getSenders() und peerConnection.getReceivers()

in Version 0.15.0 ist es so gemacht worden

const pc: any = this.session.sessionDescriptionHandler.peerConnection
    pc.getSenders().forEach((stream: any) => {
      stream.track.enabled = false
    })

danke @koshelevvasya , das hat bei mir funktioniert!

Entschuldigung war zu spät zur Party. Frage: Woher weiß ich als Gegenstelle, dass die lokale Gegenstelle ihr Mikrofon stummgeschaltet hat, damit ich den Status von meiner Seite aus aktualisieren kann? Jedes Ereignis würde ausgelöst, wenn ein Track aktiviert/deaktiviert wird, wie von

@thanh-mel , die Gegenstelle muss nicht wissen, dass das Mikrofon stummgeschaltet ist. Vielleicht müssen Sie Hold verwenden?

Jedes Ereignis würde ausgelöst, wenn eine Spur aktiviert/deaktiviert wird

Nach meiner Erfahrung ja. Weil es mit JavaScript gemacht wird

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen