跳到主要内容

屏幕共享

该功能要求 Chrome 浏览器版本在 72 以上

获取屏幕共享流

API 参考:

const { code, track: screenTrack } = await rtcClient.createScreenVideoTrack()

if (code !== RCRTCCode.SUCCESS) {
console.warn('捕获屏幕共享流失败 ->', code)
return
}

// 监听屏幕共享流结束事件, RCLocalTrack 可以通过 import { RCLocalTrack } from '@rongcloud/plugin-rtc' 获取
screenTrack.on(RCLocalTrack.EVENT_LOCAL_TRACK_END, (track: RCLocalTrack) => {
// 取消发布屏幕共享流,room 为当前加入的房间实例
room.unpublish([ track ])
})

注意,Electron 中获取屏幕共享流时,必须指定 chromeMediaSourceId,其值通过 Electron 官方 API desktopCapturer 工具获取。

const { code, track } = await rtcClient.createScreenVideoTrack('screenshare', {
chromeMediaSourceId: '<chromeMediaSrouceId>'
})

发布屏幕共享流

API 参考:publish

const { code } = await room.publish([ screenTrack ])

if (code !== RCRTCCode.SUCCESS) {
console.warn('发布屏幕共享流失败 ->', code)
}