import { AgoraElectronRtcAccessPointConfig } from '../../../core/engine/ap-detector'; import { AgoraRteScreenCaptureType } from '../../../core/media/type'; import { AgoraRtcChannelClient, AgoraRtcClient } from '../../../core/rtc'; import { AgoraRtcCanvasHelper } from '../../../core/rtc/canvas'; import { AgoraRtcCaptureEnhancement } from '../../../core/rtc/capture-enhancement'; import { AgoraRtcSourceManager } from '../../../core/rtc/source-manager'; import { AgoraRtcAudioOutputRouting, AgoraRtcCapability, AgoraRtcChannelType, AgoraRtcDeviceInfo, AgoraRtcLatencyLevelType, AgoraRtcRenderMode, AgoraRtcScreenCaptureType } from '../../../core/rtc/type'; import { AgoraElectronRtcClientInitConfig } from './type'; /** * Agora RTC客户端实现类 * 负责管理RTC引擎、音频设备、视频渲染等功能 */ export declare class AgoraRtcClientImpl extends AgoraRtcClient { private readonly _initConfig; readonly sourceManager: AgoraRtcSourceManager; readonly captureEnhancement: AgoraRtcCaptureEnhancement; readonly canvasHelper: AgoraRtcCanvasHelper; private readonly canvasTagPool; private readonly _sourceManager; private readonly _rtcEngine; private _mainParameters; private readonly _speakerList; private _isLoopbackDeviceReady; private _currentSelectedSpeakerTag; private _isObserveSystemSelectedSpeakerChanged; private _outputVolume; private _rtcChannelObserver; private _channelRefs; private _cameraPreviewTaskManager; private _audioPlayer; protected readonly logger: import("agora-foundation/lib/logger").Logger; constructor(_initConfig: AgoraElectronRtcClientInitConfig); get version(): string; /** * 创建RTC引擎实例 * @returns RTC引擎实例 */ private _createRtcEngine; /** * 创建捕获参数配置 * @returns 摄像头和屏幕捕获参数 */ private _createCaptureParams; /** * 初始化所有组件 * @returns 初始化后的组件对象 */ private _initializeState; /** * 完成初始化流程 */ private _finalizeInitialization; /** * 创建频道客户端 * @param channelId 频道ID * @param streamUuid 流UUID * @param latencyLevel 延迟级别 * @returns 频道客户端实例 */ createChannelClient(channelId: string, localUserId: string, latencyLevel: AgoraRtcLatencyLevelType, channelType?: AgoraRtcChannelType): AgoraRtcChannelClient; /** * 设置RTC引擎参数 * @param parameters 参数字符串 */ setParameters(parameters: string): number; /** * 设置接入点配置 * @param config 接入点配置 */ setAccessPointConfig(config: AgoraElectronRtcAccessPointConfig): number; /** * 检查是否支持指定功能 * @param capability 功能类型 * @returns 是否支持该功能 */ isCapabilitySupported(capability: AgoraRtcCapability): boolean; /** * 启用或禁用系统选中扬声器变化观察 * @param enable 是否启用观察 * @returns 错误码,0表示成功 */ observeSystemSelectedSpeakerChanged(enable: boolean): number; /** * 查询设备的评分 * @returns device score */ queryDeviceScore(): number; /** * 开始渲染摄像头预览 * @param deviceId 设备ID * @param view 渲染视图 * @param renderMode 渲染模式 * @param isMirror 是否镜像 * @returns 错误码 */ startRenderCameraPreview(deviceId: string, view: HTMLElement, renderMode: AgoraRtcRenderMode, isMirror: boolean): number; /** * 停止渲染摄像头预览 * @param deviceId 设备ID * @param view 渲染视图 * @returns 错误码 */ stopRenderCameraPreview(deviceId: string, view: HTMLElement): number; /** * 在所有画布上停止渲染摄像头预览 * @param deviceId 设备ID * @returns 错误码 */ stopRenderCameraPreviewOnAllCanvas(deviceId: string): number; /** * 开始渲染屏幕预览 * @param sourceId 源ID * @param view 渲染视图 * @param type 屏幕捕获类型 * @param renderMode 渲染模式 * @param isMirror 是否镜像 * @returns 错误码 */ startRenderScreenPreview(sourceId: string, view: HTMLElement, type: AgoraRteScreenCaptureType, renderMode: AgoraRtcRenderMode, isMirror: boolean): number; /** * 停止渲染屏幕预览 * @param sourceId 源ID * @param view 渲染视图 * @param type 屏幕捕获类型 * @returns 错误码 */ stopRenderScreenPreview(sourceId: string, view: HTMLElement, type: AgoraRtcScreenCaptureType): number; /** * 在所有画布上停止渲染屏幕预览 * @param sourceId 源ID * @param type 屏幕捕获类型 * @returns 错误码 */ stopRenderScreenPreviewOnAllCanvas(sourceId: string, type: AgoraRteScreenCaptureType): number; /** * 获取扬声器列表 * @returns 扬声器设备信息列表 */ getSpeakerList(): Promise; /** * 获取系统选中的扬声器 * @returns 系统选中的扬声器设备信息 */ getSystemSelectedSpeaker(): Promise; /** * 获取当前选中的扬声器 * @returns 当前选中的扬声器设备信息 */ getSelectedSpeaker(): AgoraRtcDeviceInfo; /** * 设置选中的扬声器 * @param deviceId 设备ID * @returns 错误码 */ setSelectedSpeaker(deviceId: string): number; /** * 设置扬声器启用状态(仅移动端支持) * @param enable 是否启用 * @returns 错误码 */ setEnableSpeaker(enable: boolean): number; /** * 获取音频输出路由(仅移动端支持) * @returns 音频输出路由 */ getAudioOutputRouting(): AgoraRtcAudioOutputRouting; /** * 获取输出音量 * @returns 输出音量值 */ getOutputVolume(): number; /** * 调整输出音量 * @param volume 音量值 * @returns 错误码 */ adjustOutputVolume(volume: number): number; /** * 开始播放测试音频 * @param url 音频URL * @returns 错误码 */ startPlayTestAudio(url: string): number; /** * 停止播放测试音频 * @returns 错误码 */ stopPlayTestAudio(): number; /** * 设置选中扬声器音量 * @param volume 音量值 * @returns 错误码 */ setSelectedSpeakerVolume(volume: number): number; /** * 获取选中扬声器音量 * @returns 音量值 */ getSelectedSpeakerVolume(): number; /** * 释放资源 */ release(): number; /** * 设置RTC Engine */ private _setupRtcEngine; /** * 配置云代理 */ private _configureCloudProxy; private _mapCloudProxyType; /** * 配置RTC引擎 */ private _configureRtcEngine; /** * 配置渲染器设置 */ private _configureRenderer; /** * 配置音频设置 */ private _configureAudioSettings; /** * 配置视频设置 */ private _configureVideoSettings; /** * 配置设备设置 */ private _configureDeviceSettings; /** * 启用基本功能 */ private _enableBasicFeatures; /** * 设置事件监听器 */ private _setupEventListeners; /** * 初始化扬声器列表 */ private _initializeSpeakerList; /** * 初始化系统扬声器 */ private _initializeSystemSpeaker; /** * 初始化AgoraALD插件 */ private _initAgoraALD; /** * 获取日志配置 * @returns 日志配置对象 */ private _getLogConfig; /** * 解析并提取主要参数 * @param parameters 参数字符串 * @returns 主要参数字典或null */ private _parseAndExtractMainParameters; /** * 处理麦克风保持录音设置 * @param mainParameters 主要参数 */ private _handleMicrophoneKeepRecording; /** * 设置RTC引擎参数 * @param mainParameters 主要参数字符串 */ private _setRtcEngineParameters; /** * 从设备列表创建扬声器列表 * @param devices 设备列表 */ private _createSpeakerListFromDevices; /** * 验证设备是否有效 * @param device 设备对象 * @returns 设备是否有效 */ private _isValidDevice; /** * 通用设备信息日志记录方法 * @param prefix 日志前缀 * @param device 设备信息 */ private _logDeviceInfo; /** * 通用设备获取方法 * @param device 设备对象 * @returns 设备信息或undefined */ private _getDeviceInfo; /** * 处理RTC错误 * @param err 错误码 * @param msg 错误消息 */ private _handleRtcError; /** * 处理音频设备变化 * @param deviceId 设备ID * @param deviceType 设备类型 * @param deviceState 设备状态 */ private _handleAudioDeviceChanged; /** * 处理扬声器设备变化 * @param deviceId 设备ID * @param deviceState 设备状态 */ private _handleSpeakerDeviceChange; /** * 处理扬声器设备新增 * @param deviceId 设备ID */ private _handleSpeakerDeviceAdded; /** * 处理扬声器设备移除 * @param deviceId 设备ID */ private _handleSpeakerDeviceRemoved; /** * 查找并创建设备信息 * @param deviceId 设备ID * @returns 设备信息或null */ private _findAndCreateDeviceInfo; /** * 处理系统扬声器变化 * @param deviceState 设备状态 */ private _handleSystemSpeakerChange; /** * 处理RTC统计信息 * @param _ 连接对象 * @param stats 统计信息 */ private _handleRtcStats; /** * 处理音频设备音量变化 * @param deviceType 设备类型 * @param _ 音量值 * @param muted 是否静音 */ private _handleAudioDeviceVolumeChanged; /** * 处理音量指示 * @param connection 连接对象 * @param speakers 扬声器列表 * @param __ 总音量 * @param totalVolume 总音量值 */ private _handleVolumeIndication; /** * 处理测试音量 * @param volume 音量值 */ private _handleTestVolume; private _getPlaybackWebDeviceId; }