foxconn-yumeeting-sdk-js
Version:
A js sdk for ion yumeeting
68 lines (67 loc) • 2.6 kB
TypeScript
import { Transport } from './client';
interface VideoConstraints {
[name: string]: {
resolution: MediaTrackConstraints;
encodings: RTCRtpEncodingParameters;
screenEncodings: RTCRtpEncodingParameters;
screenMotionEncodings: RTCRtpEncodingParameters;
};
}
declare const resolutions: readonly ["qvga", "vga", "shd", "hd", "fhd", "qhd"];
export declare const VideoConstraints: VideoConstraints;
export declare type Layer = 'low' | 'medium' | 'high';
export interface Encoding {
layer: Layer;
maxBitrate: number;
maxFramerate: number;
}
export interface Constraints extends MediaStreamConstraints {
resolution: typeof resolutions[number];
codec: string;
simulcast?: boolean;
sendEmptyOnMute?: boolean;
preferredCodecProfile?: string;
contentHintAudio?: string;
channelCount?: number;
echoCancellation?: boolean;
latency?: number;
}
export declare class LocalStream extends MediaStream {
static getUserMedia(constraints?: Constraints): Promise<LocalStream>;
static getDisplayMedia(stream: any, constraints?: Constraints): Promise<LocalStream>;
static getDisplayMediaForWeb(constraints?: Constraints): Promise<LocalStream>;
constraints: Constraints;
pc?: RTCPeerConnection;
api?: RTCDataChannel;
motion?: boolean;
constructor(stream: MediaStream, constraints: Constraints);
private static computeAudioConstraints;
private static computeVideoConstraints;
private getTrack;
private getNewTrack;
private publishTrack;
private setPreferredCodec;
private updateTrack;
private initAudioEmptyTrack;
private initVideoEmptyTrack;
publish(transport: Transport, motion: boolean): void;
unpublish(): void;
switchDevice(kind: 'audio' | 'video', deviceId: string): Promise<void>;
mute(kind: 'audio' | 'video'): void;
unmute(kind: 'audio' | 'video'): Promise<void>;
enableLayers(layers: Layer[]): Promise<void>;
updateMediaEncodingParams(encodingParams: RTCRtpEncodingParameters, layer?: Layer): Promise<void>;
}
export interface RemoteStream extends MediaStream {
api: RTCDataChannel;
audio: boolean;
video: 'none' | Layer;
framerate: Layer;
_videoPreMute: 'none' | Layer;
preferLayer(layer: 'none' | Layer): void;
preferFramerate(layer: Layer): void;
mute(kind: 'audio' | 'video'): void;
unmute(kind: 'audio' | 'video'): void;
}
export declare function makeRemote(stream: MediaStream, transport: Transport): RemoteStream;
export {};