mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-30 18:43:21 +08:00
108 lines
2.7 KiB
TypeScript
108 lines
2.7 KiB
TypeScript
// Type definitions for WebRTC
|
|
// Project: http://dev.w3.org/2011/webrtc/
|
|
// Definitions by: Ken Smith <https://github.com/smithkl42/>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
// Taken from http://dev.w3.org/2011/webrtc/editor/getusermedia.html
|
|
// version: W3C Editor's Draft 29 June 2015
|
|
|
|
interface NumberRange {
|
|
max?: number;
|
|
min?: number;
|
|
}
|
|
|
|
interface ConstrainNumberRange extends NumberRange {
|
|
exact?: number;
|
|
ideal?: number;
|
|
}
|
|
|
|
interface ConstrainStringParameters {
|
|
exact?: string | string[];
|
|
ideal?: string | string[];
|
|
}
|
|
|
|
declare namespace W3C {
|
|
type LongRange = NumberRange;
|
|
type DoubleRange = NumberRange;
|
|
type ConstrainBoolean = boolean | ConstrainBooleanParameters;
|
|
type ConstrainNumber = number | ConstrainNumberRange;
|
|
type ConstrainLong = ConstrainNumber;
|
|
type ConstrainDouble = ConstrainNumber;
|
|
type ConstrainString = string | string[] | ConstrainStringParameters;
|
|
}
|
|
|
|
interface MediaTrackConstraintSet {
|
|
echoCancellation?: W3C.ConstrainBoolean;
|
|
latency?: W3C.ConstrainDouble;
|
|
}
|
|
|
|
interface MediaTrackSupportedConstraints {
|
|
latency?: boolean;
|
|
}
|
|
|
|
interface MediaStream extends EventTarget {
|
|
clone(): MediaStream;
|
|
stop(): void;
|
|
|
|
getAudioTracks(): MediaStreamTrack[];
|
|
getVideoTracks(): MediaStreamTrack[];
|
|
getTracks(): MediaStreamTrack[];
|
|
|
|
getTrackById(trackId: string): MediaStreamTrack;
|
|
|
|
addTrack(track: MediaStreamTrack): void;
|
|
removeTrack(track: MediaStreamTrack): void;
|
|
}
|
|
|
|
declare enum MediaStreamTrackState {
|
|
"live",
|
|
"ended"
|
|
}
|
|
|
|
interface MediaStreamTrack extends EventTarget {
|
|
clone(): MediaStreamTrack;
|
|
|
|
stop(): void;
|
|
|
|
getCapabilities(): MediaTrackCapabilities;
|
|
getConstraints(): MediaTrackConstraints;
|
|
getSettings(): MediaTrackSettings;
|
|
applyConstraints(constraints: MediaTrackConstraints): Promise<void>;
|
|
}
|
|
|
|
interface MediaTrackCapabilities {
|
|
latency: number | W3C.DoubleRange;
|
|
}
|
|
|
|
interface MediaTrackSettings {
|
|
latency: number;
|
|
}
|
|
|
|
interface NavigatorGetUserMedia {
|
|
(constraints: MediaStreamConstraints,
|
|
successCallback: (stream: MediaStream) => void,
|
|
errorCallback: (error: MediaStreamError) => void): void;
|
|
}
|
|
|
|
// to use with adapter.js, see: https://github.com/webrtc/adapter
|
|
declare var getUserMedia: NavigatorGetUserMedia;
|
|
|
|
interface Navigator {
|
|
getUserMedia: NavigatorGetUserMedia;
|
|
|
|
webkitGetUserMedia: NavigatorGetUserMedia;
|
|
|
|
mozGetUserMedia: NavigatorGetUserMedia;
|
|
|
|
msGetUserMedia: NavigatorGetUserMedia;
|
|
|
|
mediaDevices: MediaDevices;
|
|
}
|
|
|
|
interface MediaDevices {
|
|
getSupportedConstraints(): MediaTrackSupportedConstraints;
|
|
|
|
getUserMedia(constraints: MediaStreamConstraints): Promise<MediaStream>;
|
|
enumerateDevices(): Promise<MediaDeviceInfo[]>;
|
|
}
|