Device Store
设备相关接口,操作麦克风、摄像头等。
概览
DeviceStore 设备管理类,用于处理主播摄像头、麦克风等业务。 DeviceStore 提供了一套全面的 API 来管理音视频设备,包括麦克风、摄像头和屏幕分享等功能。
主要功能
麦克风管理:打开/关闭麦克风,设置采集音量和输出音量
摄像头管理:打开/关闭摄像头,切换前后摄像头,设置镜像和视频质量
音频路由:切换扬声器和听筒
屏幕分享:开启和关闭屏幕分享功能
网络状态:实时监控网络质量信息
Important: 请使用 DeviceStore.shared 单例获取
DeviceStore实例。不要尝试直接初始化。
Tip: 设备状态更新通过 deviceState 发布者传递。订阅它以接收有关麦克风、摄像头、网络等状态的实时更新。
设备操作概览
| 功能 | 方法 | 描述 |
| 麦克风 | openLocalMicrophone/closeLocalMicrophone | 打开/关闭本地麦克风 |
| 摄像头 | openLocalCamera/closeLocalCamera | 打开/关闭本地摄像头 |
| 音频路由 | setAudioRoute | 切换扬声器/听筒 |
| 屏幕分享 | startScreenShare/stopScreenShare | 开启/关闭屏幕分享 |
| 音量控制 | setCaptureVolume/setOutputVolume | 设置采集/输出音量 |
使用示例
// 获取单例实例
val store = DeviceStore.shared()
// 订阅状态变化
lifecycleScope.launch {
store.deviceState.microphoneStatus.collect { status ->
println("麦克风状态: $status")
}
}
lifecycleScope.launch {
store.deviceState.cameraStatus.collect { status ->
println("摄像头状态: $status")
}
}
// 打开麦克风
store.openLocalMicrophone { code, message ->
if (code == 0) {
println("麦克风打开成功")
}
}
// 打开前置摄像头
store.openLocalCamera(isFront = true) { code, message ->
if (code == 0) {
println("摄像头打开成功")
}
}Topics
获取实例
DeviceStore.shared - 单例对象
观察状态
deviceState - 包含麦克风、摄像头、网络等设备状态的响应式状态
麦克风操作
openLocalMicrophone - 打开本地麦克风
closeLocalMicrophone - 关闭本地麦克风
setCaptureVolume - 设置采集音量
setOutputVolume - 设置输出音量
音频路由
setAudioRoute - 设置音频路由
摄像头操作
startCameraTest - 开始摄像头测试
stopCameraTest - 停止摄像头测试
openLocalCamera - 打开本地摄像头
closeLocalCamera - 关闭本地摄像头
switchCamera - 切换摄像头
switchMirror - 切换镜像状态
updateVideoQuality - 更新视频质量
屏幕分享
startScreenShare - 开启屏幕分享
stopScreenShare - 关闭屏幕分享
重置
reset - 重置为默认状态
See Also
Functions
关闭本地摄像头
关闭本地麦克风
打开本地摄像头
打开本地麦克风
设置音频路由
设置采集音量
设置最大输出音量
开始摄像头测试,如果摄像头打开成功,会将画面渲染到设置的 CameraView 上
开启屏幕分享
停止摄像头测试
关闭屏幕采集
切换摄像头
切换镜像状态
更新视频质量