/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://w3c.github.io/mediacapture-main/#dom-mediadevices [Exposed=Window, SecureContext, Pref="dom.webrtc.enabled"] interface MediaDevices : EventTarget { // attribute EventHandler ondevicechange; // Promise> enumerateDevices(); }; partial interface Navigator { // [SameObject, SecureContext] [Pref="dom.webrtc.enabled"] readonly attribute MediaDevices mediaDevices; }; partial interface MediaDevices { // MediaTrackSupportedConstraints getSupportedConstraints(); Promise getUserMedia(optional MediaStreamConstraints constraints); }; dictionary MediaStreamConstraints { // (boolean or MediaTrackConstraints) video = false; // (boolean or MediaTrackConstraints) audio = false; boolean video = false; boolean audio = false; }; // dictionary DoubleRange { // double max; // double min; // }; // dictionary ConstrainDoubleRange : DoubleRange { // double exact; // double ideal; // }; // dictionary ULongRange { // [Clamp] unsigned long max; // [Clamp] unsigned long min; // }; // dictionary ConstrainULongRange : ULongRange { // [Clamp] unsigned long exact; // [Clamp] unsigned long ideal; // }; // dictionary ConstrainBooleanParameters { // boolean exact; // boolean ideal; // }; // dictionary ConstrainDOMStringParameters { // (DOMString or sequence) exact; // (DOMString or sequence) ideal; // }; // dictionary MediaTrackConstraints : MediaTrackConstraintSet { // sequence advanced; // }; // typedef ([Clamp] unsigned long or ConstrainULongRange) ConstrainULong; // typedef (double or ConstrainDoubleRange) ConstrainDouble; // typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean; // typedef (DOMString or sequence or ConstrainDOMStringParameters) ConstrainDOMString; // dictionary MediaTrackConstraintSet { // ConstrainULong width; // ConstrainULong height; // ConstrainDouble aspectRatio; // ConstrainDouble frameRate; // ConstrainDOMString facingMode; // ConstrainDOMString resizeMode; // ConstrainDouble volume; // ConstrainULong sampleRate; // ConstrainULong sampleSize; // ConstrainBoolean echoCancellation; // ConstrainBoolean autoGainControl; // ConstrainBoolean noiseSuppression; // ConstrainDouble latency; // ConstrainULong channelCount; // ConstrainDOMString deviceId; // ConstrainDOMString groupId; // };