摄像头和麦克风轨道VideoAudioTrack类,该类通过统一的接口,提供了一系列操作摄像头和麦克风的功能、权限管理、设备管理、以及接入AI插件处理器等高级功能,简化了音视频处理的开发流程。详细功能如下:
可以通过 XYRTCClient.createVideoAudioTrack 方法创建 videoAudioTrack 实例,实例提供的所有属性、方法、事件见下内容;
import XYRTC, { XYRTCClient, VideoAudioTrack } from '@xylink/xy-rtc-sdk';
// 创建XYRTCClient
const XYClient: XYRTCClient = XYRTC.createClient({});
// 创建VideoAudioTrack
const videoAudioTrack: VideoAudioTrack = await XYClient.createVideoAudioTrack();
接入插件时摄像头和麦克风轨道上当前处理器链路的最终节点
videoAudioTrack.processorDestination
详情
在接入流插件时,连接处理器的最终节点,通过此节点转换并返回最终的Stream数据;
示例代码
videoAudioTrack
.connect(virtualProcessor)
.connect(waterMarkProcessor)
.connect(videoAudioTrack.processorDestination);
采集麦克风和摄像头流,支持分别采集
VideoAudioTrack.capture(config?: PeopleTrackConfig): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
config | 创建自定义Track配置参数 | - |
返回值
Promise<IReturnResult>
详情
调用此方法后,SDK开始执行采集麦克风和摄像头流操作,采集完成后,即可推送到远端;
销毁当前Track资源
VideoAudioTrack.close(): void
详情
默认情况下,不需要单独执行此方法销毁资源,在 XYRTCClient 模块销毁时自动会销毁此模块;
AI插件-连接插件处理器
VideoAudioTrack.connect(processor: any): this
参数
参数 | 类型 | 描述 | 兼容 |
processor | any | 插件处理器 | - |
返回值
this,当前videoAudioTrack实例,支持链式调用
详情
将插件处理器注入到视频流轨道中,执行视频流的定制处理,并返回处理过后的视频流;
获取本地麦克风实时音量大小,范围:0-100
VideoAudioTrack.getAudioLevel(): Promise<number>;
返回值
Promise<number>,本地麦克风实时音量大小
详情
取消监听事件
VideoAudioTrack.off(key: string): void;
参数
参数 | 类型 | 描述 | 兼容 |
key | string | 监听注册的事件Key值 | - |
详情
退出会议时,需要移除监听事件内容,销毁资源
注册监听事件
VideoAudioTrack.on(key: string, listener: Function): void;
参数
参数 | 类型 | 描述 | 兼容 |
key | string | 需要监听注册的事件Key值 | - |
listener | Function | 监听事件的回调函数,详细见VideoAudioTrack事件模块 | - |
详情
VideoAudioTrack通过事件的形式上报相关数据,开发者根据自身业务自行决定需要注册监听相应的事件,通过回调方式获取对应的数据;
切换前后置摄像头
VideoAudioTrack.switchCamera(facingMode?: IFacingMode): Promise<IFacingMode>;
参数
参数 | 类型 | 描述 | 兼容 |
facingMode | 可选,相机方向,FRONT代表前置摄像头,BACK代表后置摄像头 | - |
返回值
Promise<IFacingMode>
详情
移动端浏览器下,使用WebSDK入会,可以通过此方法切换前/后置摄像头;
切换麦克风/摄像头/扬声器设备
VideoAudioTrack.switchDevice(type: DEVICE_KIND, deviceId: string, config?: SwitchDeviceConfig): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
type | 设备类型,可选:麦克风、摄像头、扬声器设备 | - | |
deviceId | string | 设备ID,如果是默认设备,则配置为空值 | - |
config | 可选,配置是否是系统默认设备:isDefault | - |
返回值
Promise<IReturnResult>
详情
会议中切换设备使用,切换规则如下:
需要注意一下事项:
其他说明如下:
监听设备列表数据
VideoAudioTrack.on('device', (e: IDeviceManagerChangeValue) => {}): void;
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 设备变化后的最新列表数据和需要切换设备数据 | - |
详情
当系统设备发生变化时,会通过此事件上报最新的设备列表数据和需要切换的设备数据
监听设备授权权限变动状态
VideoAudioTrack.on('permission', (e: ICurrentPermission) => {}): void;
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 当前麦克风/摄像头权限 | - |
详情
当设备授权发生变化时,通过此事件上报最新的设备权限状态,支持会中动态授权和拒绝授权后恢复授权操作,SDK内部支持重新启动采集音视频流操作;
监听轨道异常信息,例如音频/视频采集失败
VideoAudioTrack.on('track-error', (e: IReturnResult) => {}): void;
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 错误内容,详细见错误码 | - |
详情
当采集麦克风或者摄像头流失败时,则通过此事件返回详细的错误内容,可以在业务上给出正确的提示内容;