Hola,
¿Existe alguna forma de silenciar el micrófono local?
Session.mute () no parece estar funcionando.
Atentamente,
Pjata
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
Comentario más útil
en la versión 0.15.0 resultó que se hizo así