0

我在 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);
});

当远程方静音/取消静音其本地视频/音频流时,是否有任何事件可以监听?
如果没有事件,通知远程方音频或视频已在本地流上静音/取消静音的正确方法是什么?

谢谢你的帮助 !

4

0 回答 0