Sip.js: 静音本地麦克风

创建于 2017-12-13  ·  11评论  ·  资料来源: onsip/SIP.js

你好,
有没有办法将本地麦克风静音?
Session.mute() 似乎不起作用。
此致,
皮亚塔

question

最有用的评论

在 0.15.0 版本中原来是这样完成的

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

所有11条评论

您需要从 peerConnection 中获取本地曲目,然后将曲目静音。 这超出了 SIP.js 的范围。 有关如何获取对等连接的信息,请参阅会话描述处理程序文档

我是这样解决的:

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

session.getLocalStreams与 0.8+ 不向前兼容。 您需要获取对等连接并从对等连接获取流。

那我该怎么做呢?

您需要从 peerConnection 中获取本地曲目,然后将曲目静音。 这超出了 SIP.js 的范围。 有关如何获取对等连接的信息,请参阅会话描述处理程序文档

我是这样做的

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

我是这样做的

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

对于现在发现这个的任何人:
Chrome 表示不应再使用peerConnection.getLocalStreams() 。 而是使用:
peerConnection.getSenders()peerConnection.getReceivers()

在 0.15.0 版本中原来是这样完成的

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

谢谢@koshelevvasya为我工作!

对不起,聚会迟到了。 问题:作为远程对等方,我如何知道本地对等方已将他们的麦克风静音,以便我可以从我的一端更新状态? 如上面@koshelevvasya所述,当启用/禁用轨道时,会触发任何事件吗?

@thanh-mel ,远程对等方不需要知道麦克风已静音。 也许你需要使用保持?

启用/禁用轨道时会触发任何事件

根据我的经验,是的。 因为它是使用 JavaScript 完成的

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

tm1000 picture tm1000  ·  12评论

josephfrazier picture josephfrazier  ·  26评论

Juli0GT picture Juli0GT  ·  5评论

DenisButCheR picture DenisButCheR  ·  7评论

slavikbialik picture slavikbialik  ·  7评论