tokbox 调节关闭/打开订阅者的视频/音频

dev*_*dev 1 video-streaming tokbox opentok

我希望能够打开/关闭会话中用户的音量。例如,在3人的集体面试中,我应该能够在说话时降低其中一个人的声音。或者当有人发出嘶嘶声时,我应该能够缩短它并在必要时重新打开它。我查看了 Tokbox 的文档,只看到了 2 种调节方法。

https://tokbox.com/developer/guides/moderation/js/

首先是强制用户断开连接,

第二种是中断用户的广播(在这种情况下我无法将用户链接回广播)。

Man*_*nik 5

这里是 TokBox 开发者布道者。

主持人令牌不允许您将其他流静音,因为您可以通过调用 停止发布音频publishAudio(false)或通过调用 停止订阅音频subscribeToAudio(false)

您可以设计您的应用程序来发送音频signal,以便在连接会话中收听特定信号的每个人都将停止发布其音频。您可以添加自定义逻辑以仅让某些参与者停止发布其音频。

假设您已连接到会话并拥有对Session存储为 的对象的引用sessionsignal您可以通过调用对象上的方法来发送信号,session如下所示:

session.signal(
  {
    data:'mutePublisher',
  },
  function(error) {
    if (error) {
      console.log("signal error ("
                   + error.name
                   + "): " + error.message);
    } else {
      console.log("signal sent.");
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

我们假设还有其他参与者连接到同一会话并且也在发布音频。signal您可以为它们设置事件侦听器,如下所示:

session.on({
  signal: function (event) {
    if (event.data === 'mutePublisher') {
      // mute publisher
      publisher.publishAudio(false);
    }
  }
Run Code Online (Sandbox Code Playgroud)

正如您在上面的代码中所看到的,任何监听设置为 的signal事件的人都会停止发布他们的音频。您可以使用相同的方法向这些参与者发送另一个信号,以分别使用和开始发布音频或视频。datamutePublisherpublisher.publishAudio(true)publisher.publishVideo(true)

请记住,上面的示例会向会话中的每个人发送信号。要在会话中向特定客户端发送信号,请调用signal()该对象的方法Session并设置to信号参数的属性。