// Generated by dts-bundle-generator v9.5.1 import EventEmitter from 'eventemitter3'; export declare enum RTMPErrorCode { RTMP_INIT_FAIL = 3000, AUDIO_ENCODER_INIT_FAIL = 3001, AUDIO_RRNOISE_INIT_FAIL = 3002, AUDIO_ENCODE_FAIL = 3003, VIDEO_ENCODE_CONFIGURE_FAIL = 3004, VIDEO_ENCODE_FAIL = 3005, WTP_OPEN_FAIL = 3006, WTP_CONNECT_FAIL = 3007, WORKER_ERROR = 3008 } export declare class RTMPError extends Error { code: RTMPErrorCode; message: string; ext: Record | undefined; toJson: () => Record; constructor(code: RTMPErrorCode, message: string, ext?: Record); } declare enum RTMPInnerEventsTypes { OnVideoCaptured = "onvideocaptured", OnAudioCaptured = "onaudiocaptured", OnVideoCaptureNoOutput = "onvideocapturenooutput", OnVideoEncoded = "onvideoencoded", OnAudioEncoded = "onaudioencoded", OnEncodedFrame = "onencodedframe", OnPacketed = "onpacketed", OnUpstreamFeedback = "onupstreamfeedback", OnBitrateChanged = "onbitratechanged" } export declare enum RTMPEventsTypes { OnError = "onerror", OnConnectClosed = "onconnectclosed", OnFirstFramePushed = "onfirstframepushed" } export declare enum StreamTrackType { Video = "video", Audio = "audio" } export type VideoEncodedFrame = { buffer: Uint8Array; props: { originTs: number; timestamp: number; duration: number; byteLength: number; type: "key" | "delta"; }; cfg: VideoDecoderConfig; }; export type AudioEncodedFrame = { buffer: Uint8Array; props: { originTs: number; timestamp: number; }; }; export type EncodeCapacityConfig = { sampleRate?: number; channel?: 1 | 2; gopSize?: number; }; export type RTMPStats = { video: { sendBitrate: number; framesPerSecond: number; framesEncoded: number; keyFramesEncoded: number; sendSpeed: number; codec: string; frameWidth: number; frameHeight: number; gopSize: number; }; audio: { sendBitrate: number; framesEncoded: number; codec: string; channels: number; sampleRate: number; }; }; type Partial$1 = { [P in keyof T]?: T[P]; }; export type PartailFeedbackSetting = Partial$1<{ videoBitrate: number; width: number; height: number; frameRate: number; }>; export type RTMPEvents = { [RTMPInnerEventsTypes.OnVideoCaptured]: (frame: VideoFrame, setting: MediaTrackConstraintSet) => void; [RTMPInnerEventsTypes.OnAudioCaptured]: (frame: AudioData, setting: MediaTrackConstraintSet) => void; [RTMPInnerEventsTypes.OnVideoCaptureNoOutput]: () => void; [RTMPInnerEventsTypes.OnVideoEncoded]: (frame: VideoEncodedFrame) => void; [RTMPInnerEventsTypes.OnAudioEncoded]: (frame: AudioEncodedFrame) => void; [RTMPInnerEventsTypes.OnEncodedFrame]: (type: StreamTrackType, frame: VideoEncodedFrame | AudioEncodedFrame) => void; [RTMPInnerEventsTypes.OnPacketed]: (tag: Uint8Array, key?: boolean) => void; [RTMPInnerEventsTypes.OnUpstreamFeedback]: (setting: PartailFeedbackSetting) => void; [RTMPInnerEventsTypes.OnBitrateChanged]: (kind: StreamTrackType, bitrate: number) => void; [RTMPEventsTypes.OnError]: (e: RTMPError) => void; [RTMPEventsTypes.OnFirstFramePushed]: () => void; [RTMPEventsTypes.OnConnectClosed]: (e?: string) => void; }; declare abstract class AbsBridge { static isSupported: () => boolean; static version: string; abstract ready: () => Promise; abstract setEncodeCapacity: (cfg: EncodeCapacityConfig) => void; abstract addTrack: (track: MediaStreamTrack) => void; abstract replaceTrack: (kind: StreamTrackType, track: MediaStreamTrack | null) => void; abstract publish: (url: string) => void; abstract adjustBitrate: (kind: StreamTrackType, bitrate: number) => void; abstract getStats: () => Promise; abstract destroy: () => void; } export interface IBridge extends AbsBridge, EventEmitter { get audioMsTrack(): MediaStreamTrack | null; get videoMsTrack(): MediaStreamTrack | null; } declare class Capture { _bridge: Bridge; _videoFirstframeCaptured: boolean; _audioFirstframeCaptured: boolean; _videoProcessorReader: ReadableStreamDefaultReader | null; _audioProcessorReader: ReadableStreamDefaultReader | null; get audioTrack(): MediaStreamTrack | null; get videoTrack(): MediaStreamTrack | null; constructor(core: Bridge); start(): void; /** * 采集源发生变化, 摄像头 -> 麦克风等需要重新对新的track抽帧 * 需要先停止正在采集的老track, 开始新track抽帧 * @param kind * @param mst */ restartCapture(kind: StreamTrackType): void; _startVideoCapture(): Promise; _startAudioCapture(): Promise; destroy(): void; } export declare class Bridge extends EventEmitter implements IBridge { _worker: Worker | null; _audioMsTrack: MediaStreamTrack | null; _videoMsTrack: MediaStreamTrack | null; _capture: Capture; static isSupported(): boolean; constructor(); get audioMsTrack(): MediaStreamTrack | null; get videoMsTrack(): MediaStreamTrack | null; ready(): Promise; _bindWorkerEvent(): void; addTrack(mst: MediaStreamTrack): void; replaceTrack(kind: StreamTrackType, mst: MediaStreamTrack | null): void; getStats(): Promise; _postVideoFrame(frame: VideoFrame, setting: MediaTrackConstraintSet): void; _postMockVideoEncodeFlag(): void; _setAVExist(v: boolean, a: boolean): void; _postAudioFrame(frame: AudioData, setting: MediaTrackConstraintSet): void; setEncodeCapacity(cfg: EncodeCapacityConfig): void; adjustBitrate(kind: StreamTrackType, bitrate: number): void; publish(url: string): void; unpublish(): void; destroy(): void; download(): void; } export {};