UNPKG

yirtc-sdk-web

Version:

基于WebRTC的实时音视频SDK

163 lines (162 loc) 3.51 kB
/** * 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; }