发布自定义流
捕获自定义媒体流
除了从本地摄像头、麦克风设备捕获默认音视频资源外,SDK 还支持获取本地/网络文件流,以及转化浏览器的 MediaStream 实例为 SDK 的音视频资源。
自定义转换 mediaStream
使用 createLocalTracks 可以将浏览器原生 API 获取的 mediaStream 对象转换为 RCLocalTrack 实例对象,满足 App 自行转换的需求。
typescript
/**
* 根据 MediaStream 实例对象创建 RCLocalTrack 实例
* @param tag 轨道标识,包含 A-Z、a-z、0-9、+、=、- 的字符串。trackId 中将包含该 tag。
* @param stream MediaStream 实例
* @param options 可用于指定 `withoutVideo` 与 `withoutAudio` 以剔除视轨与音轨
*/
const { code, tracks } = await rtcClient.createLocalTracks(tag: string, stream: MediaStream, options?: ICreateLocalTrackOptions)
捕获本地或网络文件流
从 RTCLib v5.0.5 开始,新增了 createLocalFileTracks 接口以方便用户实现自定义媒体流的发布。
typescript
/**
* 根据本地或网络媒体文件资源创建 `RCLocalFileTrack` 实例
* @param tag 资源标识
* @param file 网络文件地址,或通过 <input type='file'> 获取到的 File 实例
* @param options 可用于指定 `withoutVideo` 与 `withoutAudio` 以剔除视轨或音轨
*/
createLocalFileTracks (tag: string, file: string | File, options?: ICreateLocalTrackOptions): Promise<{ code: RCRTCCode, tracks: RCLocalFileTrack[] }>;