import type { IRtcEngineEx } from 'shengwang-electron-sdk'; import { AgoraRtcConnection, AgoraRtcVideoStreamType, AgoraRtcStreamLayer } from '../../../core/rtc/type'; import { AgoraRtcChannelSubscriber } from '../../../core/rtc/subscriber'; import { AgoraRtcVideoCanvas } from '../../../core/rtc'; export declare class AgoraRtcChannelSubscriberImpl implements AgoraRtcChannelSubscriber { private _rtcEngine; private _rtcConnection; protected logger: import("agora-foundation/lib/logger").Logger; /** * 记录每个视频流最近一次订阅的层(high/low 等),用于断线重连时恢复订阅 * 多次订阅将覆盖 value,unsubscribe 时直接删除对应 key,避免旧层被恢复 */ protected _videoMapping: Map; protected _audioMapping: Map; protected _isPause: boolean; constructor(_rtcEngine: IRtcEngineEx, _rtcConnection: AgoraRtcConnection); /** * Subscribes to a remote video stream. * @param streamId The ID of the stream. * @param streamLayer The layer to subscribe (low/high, later calls overwrite earlier records). * @returns The result of the operation. */ subscribeRemoteVideoStream(streamId: string, streamLayer: AgoraRtcStreamLayer): number; /** * Unsubscribes from a remote video stream. * @param streamId The ID of the stream. * @returns The result of the operation. */ unsubscribeRemoteVideoStream(streamId: string): number; /** * Subscribes to a remote audio stream. * @param streamId The ID of the stream. * @returns The result of the operation. */ subscribeRemoteAudioStream(streamId: string): number; /** * Unsubscribes from a remote audio stream. * @param streamId The ID of the stream. * @returns The result of the operation. */ unsubscribeRemoteAudioStream(streamId: string): number; /** * resubscribe all remote streams * @returns The result of the operation. */ resume(): number; pause(): number; release(): number; protected _subscribeRemoteVideoStream(streamId: string, streamType: AgoraRtcVideoStreamType): number; protected _unsubscribeRemoteVideoStream(streamId: string): number; protected _subscribeRemoteAudioStream(streamId: string): number; protected _unsubscribeRemoteAudioStream(streamId: string): number; private _setRemoteVideoStreamType; private _addListener; private _removeListener; private _needExcuteThisCallback; private _handleUserJoined; private _handleRemoteUserMuteAudio; private _handleRemoteUserMuteVideo; private _handleSubscribeRemoteVideoStream; takeSnapshot(streamId: string): ImageData; setRemoteAudioStreamVolume(streamId: string, volume: number): number; addVideoCanvas(streamId: string, canvas: AgoraRtcVideoCanvas): number; removeVideoCanvas(streamId: string, canvas: AgoraRtcVideoCanvas): number; enableAudioVolumeIndication(interval: number): number; }