我在 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);
});
当远程方静音/取消静音其本地视频/音频流时,是否有任何事件可以监听?
如果没有事件,通知远程方音频或视频已在本地流上静音/取消静音的正确方法是什么?
谢谢你的帮助 !