yirtc-sdk-web
Version:
基于WebRTC的实时音视频SDK
159 lines (158 loc) • 3.93 kB
TypeScript
/**
* YiRTC SDK 类型定义
*/
export interface ClientConfig {
appKey: string;
logLevel?: LogLevel;
signaling?: {
type: string;
url: string;
options?: any;
};
rtc?: {
iceServers?: RTCIceServer[];
iceTransportPolicy?: RTCIceTransportPolicy;
};
}
export interface StreamConfig {
audio?: boolean;
video?: boolean;
screen?: boolean;
microphoneId?: string;
cameraId?: string;
videoProfile?: VideoProfileType;
}
export declare enum VideoProfileType {
LOW = "120p",
STANDARD = "360p",
HIGH = "720p",
SUPER = "1080p"
}
export declare enum LogLevel {
DEBUG = "debug",
INFO = "info",
WARN = "warn",
ERROR = "error",
NONE = "none"
}
export declare enum ConnectionState {
DISCONNECTED = "DISCONNECTED",
CONNECTING = "CONNECTING",
CONNECTED = "CONNECTED",
RECONNECTING = "RECONNECTING",
FAILED = "FAILED"
}
export declare enum ClientRole {
HOST = "host",
AUDIENCE = "audience"
}
export declare enum ChannelProfile {
COMMUNICATION = "communication",
LIVE_BROADCASTING = "live"
}
export type MediaType = 'audio' | 'video' | 'screen' | 'audioSlave';
export declare enum MediaTypeEnum {
AUDIO = "audio",
VIDEO = "video",
SCREEN = "screen",
AUDIO_SLAVE = "audioSlave"
}
export declare enum ErrorCode {
SUCCESS = 0,
UNKNOWN_ERROR = 1,
INVALID_PARAMS = 2,
INVALID_OPERATION = 3,
NOT_SUPPORTED = 4,
SIGNALING_CONNECT_FAILED = 1000,
SIGNALING_DISCONNECTED = 1001,
SIGNALING_JOIN_FAILED = 1002,
SIGNALING_MESSAGE_TIMEOUT = 1003,
SIGNALING_CONNECTION_ERROR = 1004,
RTC_CREATE_OFFER_FAILED = 2000,
RTC_CREATE_ANSWER_FAILED = 2001,
RTC_SET_LOCAL_DESC_FAILED = 2002,
RTC_SET_REMOTE_DESC_FAILED = 2003,
RTC_ADD_ICE_CANDIDATE_FAILED = 2004,
RTC_CONNECTION_FAILED = 2005,
MEDIA_DEVICE_NOT_FOUND = 3000,
MEDIA_DEVICE_PERMISSION_DENIED = 3001,
MEDIA_DEVICE_NOT_READABLE = 3002,
MEDIA_DEVICE_OVERCONSTRAINED = 3003,
MEDIA_DEVICE_TYPE_ERROR = 3004,
MEDIA_DEVICE_BUSY = 3005,
MEDIA_TRACK_ENDED = 3006,
NETWORK_TIMEOUT = 4000,
NETWORK_DISCONNECTED = 4001,
NETWORK_UNSTABLE = 4002,
AUTH_INVALID_TOKEN = 5000,
AUTH_TOKEN_EXPIRED = 5001,
AUTH_INVALID_APPKEY = 5002
}
/**
* 错误信息接口
*/
export interface ErrorInfo {
code: ErrorCode;
message: string;
detail?: any;
}
export interface DeviceInfo {
deviceId: string;
label: string;
}
export interface JoinOptions {
channelName: string;
uid: string | number;
token?: string;
}
export interface RemoteStreamInfo {
streamId: string;
userId: string | number;
hasVideo?: boolean;
hasAudio?: boolean;
hasScreen?: boolean;
mediaType?: MediaType;
}
export interface SubscribeOptions {
audio?: boolean;
video?: boolean;
screen?: boolean;
mediaType?: MediaType;
}
export interface UnsubscribeOptions {
audio?: boolean;
video?: boolean;
screen?: boolean;
mediaType?: MediaType;
}
export interface NetworkStats {
uplinkNetworkQuality: number;
downlinkNetworkQuality: number;
}
export interface LocalAudioStats {
sendBitrate: number;
sendVolume: number;
}
export interface LocalVideoStats {
sendBitrate: number;
sendFrameRate: number;
sendResolution: {
width: number;
height: number;
};
}
export interface RemoteAudioStats {
uid: string | number;
receiveBitrate: number;
receiveVolume: number;
audioLossRate: number;
}
export interface RemoteVideoStats {
uid: string | number;
receiveBitrate: number;
receiveFrameRate: number;
receiveResolution: {
width: number;
height: number;
};
}