yirtc-sdk-web
Version:
基于WebRTC的实时音视频SDK
61 lines (60 loc) • 1.9 kB
TypeScript
import { MediaInterface, MediaConstraintsConfig, ScreenShareConstraintsConfig, DeviceInfo } from './interface';
/**
* Web 媒体适配器
* 实现 Web 平台的媒体设备操作
*/
export declare class WebMediaAdapter implements MediaInterface {
private logger;
private audioContext;
/**
* 构造函数
*/
constructor();
/**
* 获取用户媒体流
* @param constraints 媒体约束
* @returns Promise<MediaStream>
*/
getUserMedia(constraints: MediaConstraintsConfig): Promise<MediaStream>;
/**
* 获取屏幕共享流
* @param constraints 屏幕共享约束
* @returns Promise<MediaStream>
*/
getDisplayMedia(constraints?: ScreenShareConstraintsConfig): Promise<MediaStream>;
/**
* 枚举媒体设备
* @returns Promise<DeviceInfo[]>
*/
enumerateDevices(): Promise<DeviceInfo[]>;
/**
* 检查浏览器是否支持指定的媒体约束
* @param constraints 媒体约束
* @returns Promise<boolean>
*/
isSupportedConstraints(constraints: MediaTrackSupportedConstraints): Promise<boolean>;
/**
* 播放媒体流
* @param stream 媒体流
* @param element 视频/音频元素
* @returns Promise<void>
*/
playStream(stream: MediaStream, element: HTMLVideoElement | HTMLAudioElement): Promise<void>;
/**
* 停止媒体流
* @param stream 媒体流
*/
stopStream(stream: MediaStream): void;
/**
* 获取音频音量
* @param stream 媒体流
* @returns Promise<number> 音量大小 (0-1)
*/
getAudioLevel(stream: MediaStream): Promise<number>;
/**
* 截取视频帧
* @param videoTrack 视频轨道
* @returns Promise<Blob> 图片Blob
*/
captureFrame(videoTrack: MediaStreamTrack): Promise<Blob>;
}