你好,
有没有办法将本地麦克风静音?
Session.mute() 似乎不起作用。
此致,
皮亚塔
您需要从 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.15.0 版本中原来是这样完成的