Hook to enable screen sharing within a room and manage the existing stream.

  • Returns {
        audioTrack: null | MediaStreamTrack;
        currentTracksMiddleware: null | TracksMiddleware;
        setTracksMiddleware: (middleware: null | TracksMiddleware) => Promise<void>;
        startStreaming: (
            props?: {
                audioConstraints?: boolean | MediaTrackConstraints;
                videoConstraints?: boolean | MediaTrackConstraints;
            },
        ) => Promise<void>;
        stopStreaming: () => Promise<void>;
        stream: null | MediaStream;
        videoTrack: null | MediaStreamTrack;
    }

    • audioTrack: null | MediaStreamTrack

      The separate audio MediaStreamTrack.

    • currentTracksMiddleware: null | TracksMiddleware

      The middleware currently assigned to process the tracks. A screenshare may include both audio and video tracks, and this middleware is capable of processing each track type.

    • setTracksMiddleware: (middleware: null | TracksMiddleware) => Promise<void>

      Sets the middleware responsible for processing the tracks.

    • startStreaming: (
          props?: {
              audioConstraints?: boolean | MediaTrackConstraints;
              videoConstraints?: boolean | MediaTrackConstraints;
          },
      ) => Promise<void>

      Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.

    • stopStreaming: () => Promise<void>

      Stops the stream and cancels browser screen sharing.

    • stream: null | MediaStream

      The MediaStream object containing both tracks.

    • videoTrack: null | MediaStreamTrack

      The separate video MediaStreamTrack.