UNPKG

foxconn-yumeeting-sdk-js

Version:

A js sdk for ion yumeeting

70 lines (69 loc) 2.29 kB
import { Signal } from './signal'; import { LocalStream, RemoteStream } from './stream'; export interface Sender { stream: MediaStream; transceivers: { [kind in 'video' | 'audio']: RTCRtpTransceiver; }; } export interface Configuration extends RTCConfiguration { codec: 'vp8' | 'vp9' | 'h264'; } export interface Trickle { candidate: RTCIceCandidateInit; target: Role; } export interface ActiveLayer { streamId: string; activeLayer: string; availableLayers: string[]; } export interface AudioSDP { DTX: number; SampleRate: number; } declare enum Role { pub = 0, sub = 1 } declare type Transports<T extends string | symbol | number, U> = { [K in T]: U; }; export declare class Transport { api?: RTCDataChannel; signal: Signal; pc: RTCPeerConnection; candidates: RTCIceCandidateInit[]; onrestartice?: () => void; constructor(role: Role, signal: Signal, config: RTCConfiguration); } export default class Client { transports?: Transports<Role, Transport>; private config; private signal; audioSDP: AudioSDP; opusRed: boolean; subStream: boolean; ontrack?: (track: MediaStreamTrack, stream: RemoteStream) => void; ondatachannel?: (ev: RTCDataChannelEvent) => void; onspeaker?: (ev: string[]) => void; onerrnegotiate?: (role: Role, err: Error, offer?: RTCSessionDescriptionInit, answer?: RTCSessionDescriptionInit) => void; onactivelayer?: (al: ActiveLayer) => void; onrestartice?: () => void; constructor(signal: Signal, config?: Configuration, audioSDP?: AudioSDP, opusRed?: boolean, subStream?: boolean); join(sid: string, uid: string): Promise<void>; leave(): void; getPubStats(selector?: MediaStreamTrack): Promise<RTCStatsReport>; getSubStats(selector?: MediaStreamTrack): Promise<RTCStatsReport>; getPubConnection(): RTCPeerConnection; getSubConnection(): RTCPeerConnection; publish(stream: LocalStream, motion: boolean): void; createDataChannel(label: string): RTCDataChannel; close(): void; private trickle; private negotiate; private onNegotiationNeeded; private processChannelMessage; private audioSdpReplace; } export {};