MediaDevices
Baseline 廣泛可用 *
MediaDevices 介面是 媒體捕獲和流 API 的一部分,它提供了對連線的媒體輸入裝置(如攝像頭和麥克風)以及螢幕共享的訪問。本質上,它允許您獲取對任何媒體資料硬體源的訪問許可權。
例項屬性
從其父介面 EventTarget 繼承屬性。
例項方法
繼承其父介面 EventTarget 的方法。
enumerateDevices()-
獲取系統中可用媒體輸入和輸出裝置資訊的陣列。
getSupportedConstraints()-
返回一個符合
MediaTrackSupportedConstraints的物件,該物件指示MediaStreamTrack介面上支援哪些可約束的屬性。請參閱 媒體流 API 瞭解有關約束及其使用方法的更多資訊。 getDisplayMedia()-
提示使用者選擇一個顯示器或顯示器的一部分(例如一個視窗)作為
MediaStream進行捕獲,用於共享或錄製。返回一個解析為MediaStream的 Promise。 getUserMedia()-
在獲得使用者透過提示的許可後,開啟系統上的攝像頭和/或麥克風,並提供一個包含影片軌道和/或音訊軌道的
MediaStream。 selectAudioOutput()實驗性-
提示使用者選擇一個特定的音訊輸出裝置。
事件
devicechange-
當媒體輸入或輸出裝置被連線到或從使用者的計算機上移除時觸發。
示例
js
// Put variables in global scope to make them available to the browser console.
const video = document.querySelector("video");
const constraints = {
audio: false,
video: true,
};
navigator.mediaDevices
.getUserMedia(constraints)
.then((stream) => {
const videoTracks = stream.getVideoTracks();
console.log("Got stream with constraints:", constraints);
console.log(`Using video device: ${videoTracks[0].label}`);
stream.onremovetrack = () => {
console.log("Stream ended");
};
video.srcObject = stream;
})
.catch((error) => {
if (error.name === "OverconstrainedError") {
console.error(
`The resolution ${constraints.video.width.exact}x${constraints.video.height.exact} px is not supported by your device.`,
);
} else if (error.name === "NotAllowedError") {
console.error(
"You need to grant this page permission to access your camera and microphone.",
);
} else {
console.error(`getUserMedia error: ${error.name}`, error);
}
});
規範
| 規範 |
|---|
| 媒體捕獲和流 # mediadevices |
瀏覽器相容性
載入中…
另見
- 媒體捕獲和流 API:此介面所屬的 API。
- 螢幕捕獲 API:定義
getDisplayMedia()方法的 API。 - WebRTC API
Navigator.mediaDevices:返回一個MediaDevices物件的引用,可用於訪問裝置。- CameraCaptureJS: 使用
MediaDevices和 MediaStream Recording API 進行 HTML 影片捕獲和播放 - OpenLang:使用
MediaDevices和 MediaStream Recording API 進行影片錄製的 HTML 影片語言實驗室 Web 應用程式