navigator.mediaDevices.getUserMedia()
已经被更新为返回一个Promise
function getUserMedia(constraints) {
// 首先检查浏览器是否支持 mediaDevices 和 getUserMedia
if (navigator.mediaDevices === undefined || navigator.mediaDevices.getUserMedia === undefined) {
return Promise.reject(new Error('您的浏览器不支持 mediaDevices.getUserMedia。'));
}
// 如果已支持,则返回一个 Promise
return navigator.mediaDevices.getUserMedia(constraints);
}
// 使用示例
getUserMedia({ video: true, audio: true })
.then(stream => {
// 传递 MediaStream 对象给 HTML 的音频或视频元素
const videoElement = document.querySelector('video');
videoElement.srcObject = stream;
})
.catch(error => {
console.error('获取用户媒体失败:', error);
});
将 getUserMedia
包装在一个Promise中可以让你更好地处理异步操作,尤其是当需要在获取媒体流之前和之后执行其他任务时。当你调用这个封装好的函数时,它会返回一个Promise对象,你可以使用 then
和 catch
方法来处理成功或失败的情况。
领取专属 10元无门槛券
手把手带您无忧上云