如何使用 JsSIP 通知远程方视频/音频静音/取消静音

时间:2021-04-02 10:10:30

标签: webrtc mute jssip

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

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

感谢您的帮助!

0 个答案:

没有答案