Sip.js: Silenciar microfone local

Criado em 13 dez. 2017  ·  11Comentários  ·  Fonte: onsip/SIP.js

Olá,
Existe alguma maneira de silenciar o microfone local?
Session.mute () não parece estar funcionando.
Cumprimentos,
Pjata

question

Comentários muito úteis

na versão 0.15.0 acabou sendo feito assim

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

Todos 11 comentários

Você precisa retirar as trilhas locais do peerConnection e, em seguida, silenciar as trilhas. Isso está fora do escopo do SIP.js. Consulte a documentação do manipulador de descrição de sessão para obter informações sobre como obter a conexão de mesmo nível.

Eu resolvi assim:

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

session.getLocalStreams não é compatível com forwards com 0.8+. Você precisa obter a conexão de mesmo nível e retirar os streams da conexão de mesmo nível.

então como posso fazer isso?

Você precisa retirar as trilhas locais do peerConnection e, em seguida, silenciar as trilhas. Isso está fora do escopo do SIP.js. Consulte a documentação do manipulador de descrição de sessão para obter informações sobre como obter a conexão de mesmo nível.

eu fiz assim

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

eu fiz assim

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

Para quem está encontrando isso agora:
O Chrome diz que peerConnection.getLocalStreams() não deve ser mais usado. Em vez disso, use:
peerConnection.getSenders() e peerConnection.getReceivers()

na versão 0.15.0 acabou sendo feito assim

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

obrigado @koshelevvasya que funcionou para mim!

desculpe estava atrasado para a festa. Pergunta: como faço para, como ponto remoto, saber que o ponto local desligou o microfone para que eu possa atualizar o status do meu lado? Qualquer evento seria disparado quando uma faixa fosse habilitada / desabilitada, conforme mencionado por @koshelevvasya acima?

@ thanh-mel, o peer remoto não precisa saber que o microfone está mudo. Talvez você precise usar a espera?

Qualquer evento seria disparado quando uma trilha fosse habilitada / desabilitada

Na minha experiência, sim. Porque é feito usando JavaScript

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Juli0GT picture Juli0GT  ·  5Comentários

tm1000 picture tm1000  ·  12Comentários

raphaelhovsepyan picture raphaelhovsepyan  ·  6Comentários

josephfrazier picture josephfrazier  ·  26Comentários

DenisButCheR picture DenisButCheR  ·  7Comentários