import { AgoraRteReturnCode } from '../../constant'; import { AgoraObservable, AgoraRteRenderView } from '../../imports'; import { AgoraRteAudioRawDataConfig, AgoraRteVideoRenderMode } from '../media/type'; import { AgoraRtcChannelClient } from '../rtc'; import { AgoraRteStreamLayer } from '../../type'; import { AgoraRteSnapshotInfo, AgoraRteStreamPlayerObserver } from './type'; export declare class AgoraRteStreamPlayer { protected logger: import("agora-foundation/lib/logger/type").Logger; protected readonly observable: AgoraObservable; /** * 记录每个 streamId 最近一次订阅的层(high/low 等枚举值) */ private _streamLayerMap; /** * 订阅层变更的延迟回调时间,默认 100 ms */ private _layerUpdateDebounceMs; /** * 层更新定时器 */ private _layerUpdateTimer; private _rtcChannel; constructor(rtcChannel: AgoraRtcChannelClient); private _addRemoteStreamObserver; /** * 按层订阅远端视频流 * @param streamId 流ID * @param streamLayer 目标层级(low/high,可多次调用叠加) * @version 3.10.0 */ subscribeRemoteVideoStream(streamId: string, streamLayer: AgoraRteStreamLayer): number; /** * 停止订阅远端视频流 * @param streamId 流ID */ unsubscribeRemoteVideoStream(streamId: string): number; /** * Render the video of the remote user on the canvas. * After receiving the video data of the remote user, you can render the video on the canvas. * @param streamId * @param streamType * @param renderMode * @param isMirror * @param view */ startRenderRemoteVideoStream(streamId: string, renderMode: AgoraRteVideoRenderMode, isMirror: boolean, view: AgoraRteRenderView): number; /** * Stop rendering the video of the remote user on the canvas. * @param streamId * @param view */ stopRenderRemoteVideoStream(streamId: string, view: AgoraRteRenderView): number; /** * Subscribe to a remote audio stream, you will start receiving the audio data of this stream and play the audio. * @param streamId */ startPlayRemoteAudioStream(streamId: string): number; /** * Unsubscribe from a remote audio stream, you will stop receiving the audio data of this stream. * @param streamId */ stopPlayRemoteAudioStream(streamId: string): number; setAudioRawDataConfig(config: AgoraRteAudioRawDataConfig): AgoraRteReturnCode; /** * Set the volume of the remote audio stream. * @param streamId * @param volume */ adjustRemoteAudioStreamVolume(streamId: string, volume: number): number; takeSnapshot(streamId: string, filePath: string): Promise; addObserver(observer: AgoraRteStreamPlayerObserver): void; removeObserver(observer: AgoraRteStreamPlayerObserver): void; /** * 重新同步当前订阅层级信息(用于掉线重连后通知后端) */ resyncStreamLayers(): void; /** * 启动层事件防抖定时器: 检查定时器状态,若未启动则立即启动 `layerUpdateDebounceMs` 定时器 */ private _startLayerEventTimer; /** * flush 定时器事件: 抛出 streamLayerMap 的当前快照, 并清除定时器 */ private _flushLayerEvents; }