import { Stream } from 'nertc-web-sdk/types/stream'; import { JoinOptions, NeRtcServerAddresses, StreamOptions } from 'nertc-web-sdk/types/types'; export interface RTCChannelInfo { /** * 频道ID,可用于服务端API调用。 */ cid: number; /** * 用户输入的频道名。 */ channelName: string; /** * 用户输入的id。当用户输入的uid为0时,则可获取服务端随机分配的uid。 */ uid: number | string; /** * 用户输入的token。 */ token: string; } export declare enum VIDEO_QUALITY { VIDEO_QUALITY_1080p, VIDEO_QUALITY_720p, VIDEO_QUALITY_480p, VIDEO_QUALITY_180p } export declare enum VIDEO_FRAME_RATE { CHAT_VIDEO_FRAME_RATE_NORMAL, CHAT_VIDEO_FRAME_RATE_5, CHAT_VIDEO_FRAME_RATE_10, CHAT_VIDEO_FRAME_RATE_15, CHAT_VIDEO_FRAME_RATE_20, CHAT_VIDEO_FRAME_RATE_25 } export type AUDIO_QUALITY = 'speech_low_quality' | 'speech_standard' | 'music_standard' | 'standard_stereo' | 'high_quality' | 'high_quality_stereo'; export type RTCConfig = { videoResolution?: VIDEO_QUALITY; videoFrameRate?: VIDEO_FRAME_RATE; audioQuality?: AUDIO_QUALITY; neRtcServerAddresses?: NeRtcServerAddresses; getToken?: (opt: JoinOptions) => Promise; streamOptions?: StreamOptions; }; export type RTCConnectionState = 'DISCONNECTED' | 'CONNECTING' | 'CONNECTED' | 'DISCONNECTING'; export interface RTCControllerEvents { streamAdd: [stream: Stream]; streamSubscribed: [stream: Stream]; peerLeave: [uid: string | number]; peerOnline: [uid: string | number]; error: [errorName: string]; /** 频道被关闭(对应 nertc-web-sdk channel-closed 事件) */ channelClosed: []; /** 用户被踢出频道(对应 nertc-web-sdk client-banned 事件) */ clientBanned: []; /** 媒体轨道异常终止(如设备断开) */ trackEnded: [data: { mediaType: 'audio' | 'video'; }]; /** 网络连接状态变化 */ connectionStateChange: [data: { prevState: RTCConnectionState; curState: RTCConnectionState; reconnect: boolean; }]; /** 媒体设备权限被拒绝 */ accessDenied: [data: { mediaType: 'audio' | 'video'; }]; /** 未找到媒体设备 */ notFound: [data: { mediaType: 'audio' | 'video'; }]; /** 媒体设备被占用 */ beOccupied: [data: { mediaType: 'audio' | 'video'; }]; /** 系统中断媒体采集 */ abortError: [data: { mediaType: 'audio' | 'video'; }]; /** 未知媒体错误 */ unknownError: [data: { mediaType: 'audio' | 'video'; }]; /** 远端用户视频静音/取消静音 */ videoMuteOrUnmute: [mute: boolean]; }