通过设备管理 API,开发者可以实现如下功能:
小程序在底层自动支持设备的变动监听,并切换最新可用的设备,开发这无需关注此问题。
前一章节实现了参会者布局功能,之后屏幕上就会渲染出我们想要的参会者画面,除了视频信息之外了我们还需要处理参会者的音视频状态,也就是媒体设备管理。因此,接下来我们了解一下设备管理的一些方法。 当进入会议或者调用设备检测时,SDK 会自动申请摄像头、麦克风、扬声器资源。如下列举了常用的操作方法:
devicePosition
属性,可选有 front/back,可在入会前设置使用前置还是后置摄像头设备devicePosition
设置摄像头设备不支持会中动态切换,如过需要在会中动态切前/后置摄像头,则可以调用 switchCamera
方法实现。 camera
属性,可以控制是否关闭/开启摄像头,其中,true 代表开启摄像头,false 代表关闭摄像头,支持动态设置muted
属性,可以控制是否开启/关闭麦克风,其中,true 代表开启麦克风,false 代表关闭麦克风,支持动态设置// 在 wxml 中使用组件,并配置 muted/camera 属性
<xylink-room
template="{{ template }}"
beauty="{{ 6 }}"
muted="{{ muted }}"
camera="{{camera}}"
devicePosition="{{ devicePosition }}"
id="xylink"
bindonRoomEvent="onRoomEvent"
>
</xylink-room
// 在js文件中定义 muted/camera 响应式data
Page({
data: {
muted: false,
camera: true,
},
// 切换前置/后置摄像头
onSwitchPosition() {
const position = this.XYClient.switchCamera();
this.setData({
devicePosition: position
});
},
// 切换麦克风
onChangeMuted() {
this.setData({
muted: !this.data.muted
});
},
// 切换摄像头
onSwitchCamera() {
this.setData({
camera: !this.data.camera
});
},
)