通过阅读本文,您可以了解到Web SDK屏幕分享的使用方法。

实现方法

以下为屏幕共享的操作方法,更多信息,请参见DingRTC

  • createScreenVideoTrack():创建一个屏幕共享的视频轨道。

    const [screenTrack] = await createScreenVideoTrack(config: ScreenVideoTrackConfig);
  • ScreenVideoTrackConfig:创建屏幕共享流时的配置对象, 以下是属性信息:

    属性

    类型

    描述

    dimension?

    VideoDimension

    (Optional)视频规格

    displaySurface?

    'browser' | 'window' | 'monitor'

    (Optional)默认选中的共享内容类型,支持设为标签页、应用窗口或屏幕。

    frameRate?

    number

    (Optional)帧率

  • publish()发布屏幕共享,同频道远端用户会触发"user-published"事件,即可在事件回调中订阅屏幕共享。

    // 本地
    localClient.publish(screenTrack)
    // 远端
    remoteClient.on('user-published', (user: RemoteUser, mediaType, isAuxillary) => {
      if (mediaType === 'video' && isAuxillary) {
        // 代表远端用户屏幕共享流发布
      }
    })
  • "user-unpublished" 取消发布屏幕共享, 同频道远端用户会触发"user-unpublished"事件,即可在事件回调中取消订阅屏幕共享。

    // 本地
    localClient.unpublish(screenTrack)
    // 远端
    remoteClient.on('user-unpublished', (user: RemoteUser, mediaType, isAuxillary) => {
      if (mediaType === 'video' && isAuxillary) {
        // 代表远端用户屏幕共享流停止发布
      }
    })
  • subscribe()订阅屏幕共享,第三个参数为true时,代表要订阅该用户的屏幕共享轨道。

    client.subscribe(user.userId, 'video', true);
  • unsubscribe()取消订阅屏幕共享,第三个参数为true时,代表要取消订阅该用户的屏幕共享轨道。

    client.unsubscribe(user.userId, 'video', true);