Sip.js: Silenciar micrófono local

Creado en 13 dic. 2017  ·  11Comentarios  ·  Fuente: onsip/SIP.js

Hola,
¿Existe alguna forma de silenciar el micrófono local?
Session.mute () no parece estar funcionando.
Atentamente,
Pjata

question

Comentario más útil

en la versión 0.15.0 resultó que se hizo así

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

Todos 11 comentarios

Necesita sacar las pistas locales de peerConnection y luego silenciar las pistas. Esto está fuera del alcance de SIP.js. Consulte la documentación del controlador de descripción de sesión para obtener información sobre cómo obtener la conexión entre pares.

Lo resolví así:

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

session.getLocalStreams no es compatible con versiones posteriores 0.8+. Necesita obtener la conexión entre pares y obtener las transmisiones fuera de la conexión entre pares.

entonces, ¿cómo puedo hacer esto?

Necesita sacar las pistas locales de peerConnection y luego silenciar las pistas. Esto está fuera del alcance de SIP.js. Consulte la documentación del controlador de descripción de sesión para obtener información sobre cómo obtener la conexión entre pares.

lo hice de esta manera

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

lo hice de esta manera

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

Para cualquiera que encuentre esto ahora:
Chrome dice que peerConnection.getLocalStreams() debería usarse. En su lugar use:
peerConnection.getSenders() y peerConnection.getReceivers()

en la versión 0.15.0 resultó que se hizo así

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

¡Gracias @koshelevvasya que funcionó para mí!

Lo siento, llegué tarde a la fiesta. Pregunta: ¿cómo puedo saber yo, como interlocutor remoto, que el interlocutor local ha silenciado su micrófono para poder actualizar el estado desde mi extremo? ¿Algún evento se dispararía cuando una pista está habilitada / deshabilitada como lo menciona @koshelevvasya arriba?

@ thanh-mel, el interlocutor remoto no necesita saber que el micrófono está silenciado. ¿Quizás necesites usar hold?

Cualquier evento se dispararía cuando una pista está habilitada / deshabilitada

En mi experiencia, sí. Porque se hace usando JavaScript

¿Fue útil esta página
0 / 5 - 0 calificaciones