{ "api": { "MediaDevices": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices", "support": { "chrome": { "version_added": "47" }, "chrome_android": { "version_added": "47" }, "edge": { "version_added": "≤18" }, "firefox": { "version_added": "33" }, "firefox_android": { "version_added": "36" }, "ie": { "version_added": false }, "opera": { "version_added": "30" }, "opera_android": { "version_added": "30" }, "safari": { "version_added": "11" }, "safari_ios": { "version_added": "11" }, "samsunginternet_android": { "version_added": "5.0" }, "webview_android": { "version_added": "47" } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "devicechange_event": { "__compat": { "description": "devicechange event", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/devicechange_event", "support": { "chrome": { "version_added": "57" }, "chrome_android": { "version_added": false }, "edge": { "version_added": "12" }, "firefox": { "version_added": "52" }, "firefox_android": { "version_added": null }, "ie": { "version_added": false }, "opera": { "version_added": "34" }, "opera_android": { "version_added": "43" }, "safari": { "version_added": false }, "safari_ios": { "version_added": false }, "samsunginternet_android": { "version_added": false }, "webview_android": { "version_added": false } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "enumerateDevices": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices", "support": { "chrome": { "version_added": "47" }, "chrome_android": { "version_added": "47" }, "edge": { "version_added": "12" }, "firefox": [ { "version_added": "63", "flags": [ { "type": "preference", "name": "media.setsinkid.enabled", "value_to_set": "true" } ], "notes": "Prior to Firefox 63, enumerateDevices() only returned input devices. Starting with Firefox 63, output devices are also included if the media.setsinkid.enabled preference is enabled." }, { "version_added": "39" } ], "firefox_android": [ { "version_added": "63", "flags": [ { "type": "preference", "name": "media.setsinkid.enabled", "value_to_set": "true" } ], "notes": "Prior to Firefox 63, enumerateDevices() only returned input devices. Starting with Firefox 63, output devices are also included if the media.setsinkid.enabled preference is enabled." }, { "version_added": "39" } ], "ie": { "version_added": false }, "opera": { "version_added": "34" }, "opera_android": { "version_added": "34" }, "safari": { "version_added": "11" }, "safari_ios": { "version_added": "11" }, "samsunginternet_android": { "version_added": "5.0" }, "webview_android": { "version_added": "47" } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "getDisplayMedia": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia", "description": "getDisplayMedia()", "support": { "chrome": [ { "version_added": "72" }, { "version_added": "70", "version_removed": "72", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Available as a member of Navigator instead of MediaDevices in Chrome 70 and 71." } ], "chrome_android": { "version_added": false }, "edge": [ { "version_added": "79" }, { "version_added": "17", "notes": "Available as a member of Navigator instead of MediaDevices." } ], "firefox": [ { "version_added": "66" }, { "version_added": "33", "version_removed": "66", "notes": "Since Firefox 33 you can capture screen data using getUserMedia(), with a video constraint called mediaSource. Prior to 52 it relied on a client-configurable list of allowed sites." } ], "firefox_android": { "version_added": false, "notes": "API is available, but will always fail with NotAllowedError." }, "ie": { "version_added": false }, "opera": [ { "version_added": "60" }, { "version_added": "57", "version_removed": "60", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Available as a member of Navigator instead of MediaDevices in Opera 57 and 58." } ], "opera_android": { "version_added": false }, "safari": { "version_added": "13" }, "safari_ios": { "version_added": false }, "samsunginternet_android": { "version_added": false }, "webview_android": { "version_added": false, "notes": "API is available, but will always fail with NotAllowedError." } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "audio-capture-support": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen_Capture_API/Using_Screen_Capture#Capturing_shared_audio", "description": "Audio capture support", "support": { "chrome": { "version_added": "74", "notes": "On Windows and Chrome OS the entire system audio can be captured, but on Linux and Mac only the audio of a tab can be captured." }, "chrome_android": { "version_added": false }, "edge": { "version_added": "≤79", "notes": "On Windows and Edge OS the entire system audio can be captured, but on Linux and Mac only the audio of a tab can be captured." }, "firefox": { "version_added": false }, "firefox_android": { "version_added": false }, "ie": { "version_added": false }, "opera": { "version_added": null }, "opera_android": { "version_added": false }, "safari": { "version_added": false }, "safari_ios": { "version_added": false }, "samsunginternet_android": { "version_added": false }, "webview_android": { "version_added": false } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } }, "getSupportedConstraints": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints", "support": { "chrome": { "version_added": "53" }, "chrome_android": { "version_added": "52" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "ie": { "version_added": false }, "opera": { "version_added": "40" }, "opera_android": { "version_added": "41" }, "safari": { "version_added": "11" }, "safari_ios": { "version_added": "11" }, "samsunginternet_android": { "version_added": "6.0" }, "webview_android": { "version_added": "53" } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "getUserMedia": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia", "support": { "chrome": [ { "version_added": "52" }, { "version_added": "47", "version_removed": "52", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Older versions of Chrome implement navigator.webkitGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API." } ], "chrome_android": [ { "version_added": "52" }, { "version_added": "47", "version_removed": "52", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Older versions of Chrome implement navigator.webkitGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API." } ], "edge": { "version_added": "12" }, "firefox": { "version_added": "36", "notes": [ "Older versions of Firefox implement navigator.mozGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API.", "Before Firefox 55, getUserMedia() incorrectly returns NotSupportedError when the list of constraints specified is empty, or has all constraints set to false. Starting in Firefox 55, this situation now correctly calls the failure handler with a TypeError.", "When using the Firefox-specific video constraint called mediaSource to request display capture, Firefox 66 and later consider values of screen and window to both cause a list of screens and windows to be shown.", "Starting in Firefox 66, getUserMedia() can no longer be used in sandboxed <iframe>s or data URLs entered in the address bar by the user." ] }, "firefox_android": { "version_added": "36", "notes": [ "Older versions of Firefox implement navigator.mozGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API.", "Before Firefox 55, getUserMedia() incorrectly returns NotSupportedError when the list of constraints specified is empty, or has all constraints set to false. Starting in Firefox 55, this situation now correctly calls the failure handler with a TypeError.", "When using the Firefox-specific video constraint called mediaSource to request display capture, Firefox 66 and later consider values of screen and window to both cause a list of screens and windows to be shown.", "Starting in Firefox 66, getUserMedia() can no longer be used in sandboxed <iframe>s or data URLs entered in the address bar by the user." ] }, "ie": { "version_added": false }, "opera": [ { "version_added": "40" }, { "version_added": "34", "version_removed": "40", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Older versions of Opera implement navigator.webkitGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API." } ], "opera_android": [ { "version_added": "41" }, { "version_added": "34", "version_removed": "41", "flags": [ { "type": "preference", "name": "Experimental Web Platform features", "value_to_set": "Enabled" } ], "notes": "Older versions of Opera implement navigator.webkitGetUserMedia, a prefixed form of the legacy navigator.getUserMedia API." } ], "safari": { "version_added": "11" }, "safari_ios": { "version_added": "11" }, "samsunginternet_android": { "version_added": "6.0" }, "webview_android": { "version_added": "53" } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "secure_context_required": { "__compat": { "description": "Secure context required", "support": { "chrome": { "version_added": true }, "chrome_android": { "version_added": true }, "edge": { "version_added": "79" }, "firefox": { "version_added": "68" }, "firefox_android": { "version_added": "68" }, "ie": { "version_added": false }, "opera": { "version_added": null }, "opera_android": { "version_added": null }, "safari": { "version_added": null }, "safari_ios": { "version_added": null }, "samsunginternet_android": { "version_added": true }, "webview_android": { "version_added": true } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } }, "ondevicechange": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/ondevicechange", "support": { "chrome": { "version_added": "57" }, "chrome_android": { "version_added": false }, "edge": { "version_added": "12" }, "firefox": [ { "version_added": "52" }, { "version_added": "51", "version_removed": "52", "flags": [ { "type": "preference", "name": "media.ondevicechange.enabled", "value_to_set": "true" } ], "notes": "MediaDevices.ondevicechange is supported only on macOS." } ], "firefox_android": { "version_added": true }, "ie": { "version_added": false }, "opera": { "version_added": "34" }, "opera_android": { "version_added": "34" }, "safari": { "version_added": false }, "safari_ios": { "version_added": false }, "samsunginternet_android": { "version_added": false }, "webview_android": { "version_added": false } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "stereo_audio_capture": { "__compat": { "description": "Stereo audio capture", "support": { "chrome": { "version_added": null }, "chrome_android": { "version_added": null }, "edge": { "version_added": null }, "firefox": { "version_added": "55" }, "firefox_android": { "version_added": false }, "ie": { "version_added": false }, "opera": { "version_added": null }, "opera_android": { "version_added": null }, "safari": { "version_added": false }, "safari_ios": { "version_added": false }, "samsunginternet_android": { "version_added": null }, "webview_android": { "version_added": null } }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } } } }