DeviceStore

abstract class DeviceStore

设备相关接口,操作麦克风、摄像头等。

概览

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

获取实例

观察状态

  • deviceState - 包含麦克风、摄像头、网络等设备状态的响应式状态

麦克风操作

音频路由

摄像头操作

屏幕分享

重置

  • reset - 重置为默认状态

See Also

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

单例对象

Properties

Link copied to clipboard
abstract val deviceState: DeviceState

状态

Functions

Link copied to clipboard
abstract fun closeLocalCamera()

关闭本地摄像头

Link copied to clipboard
abstract fun closeLocalMicrophone()

关闭本地麦克风

Link copied to clipboard
abstract fun openLocalCamera(isFront: Boolean, completion: CompletionHandler?)

打开本地摄像头

Link copied to clipboard
abstract fun openLocalMicrophone(completion: CompletionHandler?)

打开本地麦克风

Link copied to clipboard
abstract fun reset()

重置为默认状态

Link copied to clipboard
abstract fun setAudioRoute(audioRoute: AudioRoute)

设置音频路由

Link copied to clipboard
abstract fun setCaptureVolume(volume: Int)

设置采集音量

Link copied to clipboard
abstract fun setOutputVolume(volume: Int)

设置最大输出音量

Link copied to clipboard
abstract fun startCameraTest(cameraView: CameraView, completion: CompletionHandler?)

开始摄像头测试,如果摄像头打开成功,会将画面渲染到设置的 CameraView 上

Link copied to clipboard
abstract fun startScreenShare()

开启屏幕分享

Link copied to clipboard
abstract fun stopCameraTest()

停止摄像头测试

Link copied to clipboard
abstract fun stopScreenShare()

关闭屏幕采集

Link copied to clipboard
abstract fun switchCamera(isFront: Boolean)

切换摄像头

Link copied to clipboard
abstract fun switchMirror(mirrorType: MirrorType)

切换镜像状态

Link copied to clipboard
abstract fun updateVideoQuality(quality: VideoQuality)

更新视频质量