3

当我想使麦克风静音时,我使用从中获得的媒体流

session.sessionDescriptionHandler.on('userMedia', 
onUserMediaObtained.bind(this))

function onUserMediaObtained(stream) {
    localMediaStream = stream
}

会话值来自 agent.invite() 方法。

但是当我接到来电时,在 onInvite 事件处理程序中:

agent.on('invite', onInvite(dispatch, store))

const onInvite = (dispatch, store) => session => {
  if (session.sessionDescriptionHandler) {}
  else { //always undefined here}
 }

我再次尝试在 onaccepted 事件处理程序中附加事件

session.on('accepted', onAccepted(dispatch))

初始化了 sessionDescriptionHandler 对象,但我认为为时已晚,onUserMediaObtained 没有被触发。

4

3 回答 3

0
let pc = this.session.sessionDescriptionHandler.peerConnection;
pc.getLocalStreams().forEach(function (stream) {
    stream.getAudioTracks().forEach(function (track) {
        try {
            track.enabled = !track.enabled;
        } catch (e) {
            toastr.error('Error occured in executing this command.');
            console.log(e);
        }
    });
});
于 2018-11-07T06:07:29.283 回答
0

在这里,我只是用 sipjs 11 做到了这一点

`const pc = session.sessionDescriptionHandler.peerConnection;
        let togglemute = `true/false`;
        // this.emit
        if (pc.getSenders) {
            pc.getSenders().forEach(function (sender) {
                if (sender.track) {
                    sender.track.enabled = !togglemute;

                }
            });
        } else {
            pc.getReceivers().forEach(function (receiver) {
                if (receiver.track) {
                    receiver.track.enabled = !togglemute;
                }
            });
        }`
于 2018-11-02T22:11:17.633 回答
0

您可以使用会话对象将麦克风静音/取消静音。似乎这两个函数已从 Session API 页面中删除,但我很确定它仍然有效。

在这个 0.7.0 API 页面中,您指定了https://sipjs.com/api/0.7.0/session/#muteoptions

于 2018-01-10T11:12:04.470 回答