首页 > 解决方案 > 通过 SIP javascript 在通话中静音/取消静音麦克风

问题描述

我是 javascript 新手,我正在尝试通过 sip 拨打电话。

我想在我的应用程序中添加静音按钮,但我想让它静音我的麦克风。我的意思是,我不想让我的音频静音,所以我不会在这里。我想要完全相反的——对方听不到我的声音。

这是我的html代码:

<body onload="start()">
  <audio id="remoteAudio"></audio>
  <speaker></speaker>
  <!-- mute -->
  <button class="Rtable-cell numberBtn mute-btn" onclick="mute()">
    <img src="//webrtc.phone.do/call/getMuteImg"/>
  </button>
</body>

这是我的javascript代码:

function createSimple(callerURI, displayName, remoteVideoElement) {
var configuration = {
    aor,
    media: {
        remote: {
            audio: remoteVideoElement,
        },
    },
    ua: {
        traceSip: true,
        uri: aor,
        displayName: displayName,
        userAgentString: 'SIP-0.20.0.js',
        },
    };
return new SIP.Web.SimpleUser('wss://webrtc01.phone.do:443', configuration);
}


function start() {
    remoteVideoElement = document.getElementById('remoteAudio');
    remoteVideoElement.volume = 0.2;
    simple = createSimple(aor, fromName, remoteVideoElement);
    simple.connect();
}

我试图这样做:

function setStream(stream) {
    myStream = stream;
}


var myStream;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || 
navigator.mozGetUserMedia;
navigator.getUserMedia({ audio: true }, setStream, function () { alert('failed') });

function mute() {
    myStream.getAudioTracks()[0].enabled = !(myStream.getAudioTracks()[0].enabled);
    getAudioTracks().foreach(track=>{track.stop();})

}

和这个:

function mute() {
    remoteVideoElement.muted=true;
}

但这一切都只使我的音频静音。正如我解释的那样,这不是我想要的。

有任何想法吗?

标签: javascripthtmlhtml5-audiomicrophonemute

解决方案


您是否尝试过使用保持而不是静音?在 SIP 中有保持通话的选项。只是问问而已。如果您还没有尝试过。


推荐阅读