通过设备管理API开发者可实现以下功能(各平台实现情况请参考各平台文档详情):
设备 | 功能 |
麦克风 | 检测麦克风状态 开关麦克风 获取麦克风音量 |
摄像头 | 检测摄像头状态 开关摄像头 切换摄像头 |
扬声器 | 检测扬声器状态 开关扬声器 获取扬声器音量 |
对于PC端,开发者可通过API实现设备列表的检测,并可对会议中使用的设备进行选择。 设备状态变更引起的参会者音视频状态的变更将通过事件回调进行通知。
前一章节实现了参会者布局功能,之后屏幕上就会渲染出我们想要的参会者画面,除了视频信息之外了我们还需要处理参会者的音视频状态,也就是媒体设备管理。因此,接下来我们了解一下设备管理的一些方法。 当会议链接成功时,系统会自动申请相机、麦克风、扬声器资源,因此我们一般操作媒体设备都会在收到会议链接成功回调之后进行。如下列举了常用的操作方法:
参会中修改摄像机和麦克风状态:
音频操作:
startAudio(micMute: boolean = true, speakerMute: boolean = false) {
XYRTCEngine.getInstance().startAudio(micMute, speakerMute);
}
operateAudioMute(isAudioMute: boolean, reason: XYSDKAudioMuteReason = XYSDKAudioMuteReason.User): void {
...
XYRTCEngine.getInstance().micMute(isAudioMute, reason);
}
视频操作:
operateVideoMute(isVideoMute: boolean, notifyRemote: boolean = true): void {
...
if (notifyRemote) {
XYRTCEngine.getInstance().videoMute(isVideoMute);
}
this.setLocalVideoEnabled(!isVideoMute);
...
}