我在一个 web Angular 项目中使用 JsSIP 库,我能够在两方之间进行 visio 调用。
现在我想更进一步,为音频和视频添加一个静音/取消静音按钮。
但到目前为止,我只能在本地检测到静音/取消静音事件,但不能在远程方将其音频/视频静音/取消静音时检测到。
这是我的实现:
const socket = new WebSocketInterface('***');
const configuration: UAConfiguration = {
sockets: [socket],
uri: 'xxx@xxx',
password: '***',
realm: 'xxx'
};
this.ua = new UA(configuration);
this.ua.start();
调用远程方的代码:
const options = {
mediaConstraints: { audio: true, video: true },
pcConfig: {
iceServers: [
{ urls: ['***'] }
]
}
};
this.session = this.ua?.call('xxx', options);
我在本地流(例如视频)上静音/取消静音的方式:
toggleLocalVideo(): boolean {
const isMutedVideo = this.session?.isMuted().video;
if (isMutedVideo) {
this.session?.unmute({video: true, audio: false});
}else {
this.session?.mute({video: true, audio: false});
}
}
我检测本地流的方式已被静音/取消静音
this.session?.on('muted', e => {
console.log('muted', e);
});
this.session?.on('unmuted', e => {
console.log('unmuted', e);
});
是否有任何事件我可以侦听以检测远程方何时将其本地视频/音频流静音/取消静音?
如果没有事件,通知远程方本地流上的音频或视频已静音/取消静音的正确方法是什么?
感谢您的帮助!