yirtc-sdk-web
Version:
基于WebRTC的实时音视频SDK
163 lines (162 loc) • 3.51 kB
TypeScript
/**
* YiRTC SDK 流类
*/
import { EventEmitter } from './utils/eventEmitter';
import { StreamConfig, VideoProfileType, MediaType } from './types';
/**
* 流类,负责管理音视频流
*/
export declare class Stream extends EventEmitter {
private logger;
private config;
private stream;
private videoTrack;
private audioTrack;
private videoElement;
private streamId;
private userId;
private isPlaying;
private videoProfile;
private isLocal;
private mediaType;
/**
* 创建流实例
* @param config 流配置
*/
constructor(config: StreamConfig);
/**
* 初始化流
* @returns Promise<void>
*/
init(): Promise<void>;
/**
* 播放流
* @param elementId 视频元素ID
* @returns void
*/
play(elementId: string): void;
/**
* 停止播放
*/
stop(): void;
/**
* 销毁流
*/
destroy(): void;
/**
* 静音音频
*/
muteAudio(): void;
/**
* 取消静音音频
*/
unmuteAudio(): void;
/**
* 禁用视频
*/
muteVideo(): void;
/**
* 启用视频
*/
unmuteVideo(): void;
/**
* 设置音频配置
* @param profile 音频配置
*/
setAudioProfile(profile: string): void;
/**
* 设置视频配置
* @param profile 视频配置
*/
setVideoProfile(profile: VideoProfileType): void;
/**
* 设置音频音量
* @param volume 音量值 (0-100)
*/
setAudioVolume(volume: number): void;
/**
* 获取音频电平
* @returns number 音频电平 (0-100)
*/
getAudioLevel(): number;
/**
* 是否有音频
* @returns boolean
*/
hasAudio(): boolean;
/**
* 是否有视频
* @returns boolean
*/
hasVideo(): boolean;
/**
* 是否正在播放
* @returns boolean
*/
isPlayingState(): boolean;
/**
* 是否可以播放
* @returns boolean
*/
canPlay(): boolean;
/**
* 获取流ID
* @returns string
*/
getId(): string;
/**
* 获取用户ID
* @returns string | number
*/
getUserId(): string | number;
/**
* 设置用户ID
* @param uid 用户ID
*/
setUserId(uid: string | number): void;
/**
* 设置是否为本地流
* @param isLocal 是否为本地流
*/
setIsLocal(isLocal: boolean): void;
/**
* 是否为本地流
* @returns boolean
*/
isLocalStream(): boolean;
/**
* 获取MediaStream对象
* @returns MediaStream | null
*/
getMediaStream(): MediaStream | null;
/**
* 截取视频快照
* @returns Promise<string> 图片的base64编码
*/
takeSnapshot(): Promise<string>;
/**
* 获取媒体类型
* @returns MediaType
*/
getMediaType(): MediaType;
/**
* 设置媒体类型
* @param mediaType 媒体类型
*/
setMediaType(mediaType: MediaType): void;
/**
* 是否为屏幕共享流
* @returns boolean
*/
isScreenStream(): boolean;
/**
* 是否为音频流
* @returns boolean
*/
isAudioStream(): boolean;
/**
* 是否为视频流
* @returns boolean
*/
isVideoStream(): boolean;
}