枚举
DeviceInfo 字段:deviceId、name、kind、isDefault。
做设备下拉框用
cachedDevices() —— 它不会每次渲染都去问系统。
配合热插拔事件刷新即可。切换摄像头
这两个是原地换设备、不重建轨道,所以不需要重新发布 ——
比直接用底层 SRTC 的
changeDeviceId 少一层心智负担
(那边换设备会换底层轨道,已发布的必须重新发布)。热插拔
一个最小的设备选择器
实测的设备形态
一台 HUAWEI nova 12 Pro(HarmonyOS 6.1)上:系统默认摄像头是后置。 视频会议通常要显式用前置 ——
requestOpenCamera() 用的默认预设已经是前置(CameraPosition.front),
但如果你自己构造采集参数就要注意。权限
摄像头与麦克风是user_grant 权限,除了在 module.json5 声明,
还必须在运行时申请:
requestOpenMic / requestOpenCamera 会失败,
底层抛的是 SRTCError 的 captureError(108018)。