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 应用程序