UNPKG

foxconn-yumeeting-sdk-js

Version:

A js sdk for ion yumeeting

68 lines (67 loc) 2.6 kB
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 {};