通过 SDK API 开发者可实现以下功能:
并支持实时推送最新设备列表数据,实时切换最新的可用设备数据。
前一章节实现了参会者布局功能,之后屏幕上就会渲染出我们想要的参会者画面,除了视频信息之外了我们还需要处理参会者的音视频状态,也就是媒体设备管理。因此,接下来我们了解一下设备管理的一些方法。 当进入会议或者调用设备检测时,SDK 会自动申请摄像头、麦克风、扬声器资源。如下列举了常用的操作方法:
从v3.10.1版本开始,会外使用麦克风需要自行启用/关闭采集操作:
1、使用麦克风时调用startAudioCapture
2、停止麦克风采集调用stopAudioCapture
3、会外如需切换麦克风设备,需要重新调用startAudioCapture
// 获取设备列表
xyRTC.getDeviceList(type?: DeviceTypeKey): Promise<IDeviceList | IDeviceItem[]>;
// 获取当前正在使用的设备
xyRTC.getCurrentDevice(type?: DeviceTypeKey): Promise<ICurrentDevice | string>;
// 切换设备
xyRTC.switchDevice(type: IDeviceType, devId: string): void;
// 打开/关闭摄像头
xyRTC.muteCamera(status:boolean): void;
// 打开/关闭麦克风
xyRTC.muteMic(status:boolean): void;
// 设置视频配置,呼叫前设置有效
xyRTC.setVideoProfile(videoProfile: IVideoProfile): void;
// 设备列表更新事件
xyRTC.on('Device', (deviceList: Partial<IDeviceList>) => {});
// 当前正在使用的设备更新事件
xyRTC.on('CurrentDevice', (currentDevice: Partial<ICurrentDevice>) => {});
// Local声音大小回调
xyRTC.on("MicEnergyReported", (e: number) => {});
// 开始采集麦克风 兼容v3.10.1+
xyRTC.startAudioCapture();
// 结束采集麦克风 兼容v3.10.1+
xyRTC.stopAudioCapture();
会外使用设备场景:
// 会外开始使用麦克风时调用
xyRTC.startAudioCapture();
// 会外结束使用麦克风时调用
xyRTC.stopAudioCapture();
// 会外麦克风切换 需要重新采集麦克风
xyRTC.on("CurrentDevice", (currentDevice) => {
if(currentDevice.microphone && callState !== 'meeting'){
xyRTC.startAudioCapture();
}
};);