在房间视频通话 twilio 中共享屏幕之前需要 remoteParticipant 获得批准

时间:2021-05-21 20:21:58

标签: javascript php typescript twilio

我有两种类型的用户:顾问和访客。

顾问可以在房间内进行视频通话时共享他们的屏幕。当客人去共享他们的屏幕时,我想通知顾问客户点击了共享屏幕按钮,允许顾问接受/拒绝客人共享他们的屏幕的请求。

在发布屏幕共享轨道之前没有触发事件供我收听并提示顾问接受/拒绝客人在实时视频通话中共享他们的屏幕。

这是启动屏幕共享的代码:

export const startScreenShare = async (room: Room): Promise<boolean> => {

  if (isParticipantSharingScreen(room.localParticipant)) {
    disableParticipantsScreenSharingTrack(room.localParticipant);
    return false;
  }

  // Only allow one participant to share their screen at a time.
  room.participants.forEach((participant) => {
    if (isParticipantSharingScreen(participant)) {
      throw new Error("Only one participant may share their screen at a time.");
    }
  });

  const stream = await navigator.mediaDevices.getDisplayMedia({
    video: {
      width: 1280,
      height: 720,
      frameRate: 10,
    },
  });

  const screenTrack = new LocalVideoTrack(stream.getTracks()[0], {
    name: SCREEN_SHARE_TRACK_NAME,
    logLevel: "warn",
  });

  const track = room.localParticipant.publishTrack(screenTrack);

  screenTrack.once("stopped", () => {
    room.localParticipant.unpublishTrack(screenTrack);
    stopScreenSharing();
  });

  return true;
};

我已经研究过使用 LocalDataTrack 在参与者之间进行对话以隐藏/显示屏幕共享按钮。我还研究了设置订阅规则,因此我可以排除视频聊天中其他人订阅的屏幕轨迹类型。任何帮助表示赞赏。

0 个答案:

没有答案