共享桌面/应用/标签内容轨道实例,通过此实例可实现如下功能:
通过XYRTCClient.createContentTrack创建共享内容轨道;
import XYRTC, { XYRTCClient, VideoAudioTrack } from '@xylink/xy-rtc-sdk';
// 创建XYRTCClient
const XYClient: XYRTCClient = XYRTC.createClient({});
// 创建VideoAudioTrack
const contentTrack: ContentTrack = await XYClient.createContentTrack();
采集屏幕/应用/网页标签视频流、支持在共享过程中,采集新的视频流
ContentTrack.capture(config?: ContentTrackConfig): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
config | 创建Content Track配置参数 | - |
返回值
Promise<IReturnResult>
详情
调用此方法后,SDK开始执行采集桌面屏幕/应用/网页标签流,采集完成后,即可推送到远端;
v4.0.0+版本开始,支持非常丰富的共享配置,例如:displaySurface、preferCurrentTab、controller等;
v4.0.0+版本开始,支持本地分享过程中,调用此方法切换新的分享源;
结束共享内容,释放资源
ContentTrack.close(): void;
详情
需要结束分享屏幕/应用/标签时,调用此方法可结束分享,并释放资源,结束后,可重新创建ContentTrack进行分享内容操作;
创建Electron共享视频流
ContentTrack.createElectronContentStream(selectedSourceId: string): Promise<IReturnResult>
详情
在Electron应用下,创建Electron的共享视频流,通过WebRTC通道发送视频流;
获取Electron采集资源信息
ContentTrack.getElectronContentSources(desktopCapturer: any, types?: any): Promise<XYElectronSource[]>
返回值
Promise<XYElectronSource[]>
详情
注册监听事件
ContentTrack.on(key: string, listener: Function): void;
参数
参数 | 类型 | 描述 | 兼容 |
key | string | 需要监听注册的事件Key值 | - |
listener | Function | 监听事件的回调函数,详细见ContentTrack事件模块 | - |
详情
ContentTrack通过事件的形式上报相关数据,开发者根据自身业务自行决定需要注册监听相应的事件,通过回调方式获取对应的数据;
取消监听事件
ContentTrack.off(key: string): void;
参数
参数 | 类型 | 描述 | 兼容 |
key | string | 监听注册的事件Key值 | - |
详情
结束共享时,需要移除监听事件内容,销毁资源
暂停分享
ContentTrack.pause(): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
SDK提供了暂停和恢复共享的功能,使用户在共享内容时能够灵活控制共享的状态。通过调用相应的接口,用户可以随时暂停正在进行的内容共享,并在需要时恢复共享。
暂停分享
ContentTrack.resume(): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
暂停分享后,可通过此方法恢复本地共享,恢复后,远端可正常接收本地分享的内容;
监听可以开始推送共享内容事件,当遇到权限等原因被拒绝后,则收不到此信息
ContentTrack.on('start-share-content', () => {}): void;
详情
发起共享内容后,需要响应会控服务权限控制,如果可以分享,则通过此事件上报可以开始推送共享内容流操作,否则推送stop-share-content停止分享内容;
监听结束共享内容事件,例如通过会控结束共享,则需要在此事件中结束本地共享内容
ContentTrack.on('stop-share-content', () => {}): void;
详情
当收到此事件后,需要立即结束分享内容操作;
监听轨道异常信息,例如采集共享内容流失败等
ContentTrack.on('track-error', (e: IReturnResult) => {}): void;
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 错误内容 | - |
详情
当采集内容共享流失败时,则通过此事件返回详细的错误内容,可以在业务上给出正确的提示内容;