屏幕共享
该功能要求 Chrome 浏览器版本在 72 以上
获取屏幕共享流
API 参考:
- 获取屏幕共享视频流:createScreenVideoTrack
- 获取屏幕共享视频流并尝试获取音频(Mac OSX 系统无法获取到音频)createScreenWithAudioTracks
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)
}