我有单页 Web 应用程序(SPA),它可以在注册过程中验证用户。验证的一部分是捕获用户的自拍照。为此,我实现了以下代码的一个版本,以将相机输入到video网页上的元素中,然后我可以将图像采样到canvas.
navigator.mediaDevices.getUserMedia({ video: true, audio: false })
.then(localMediaStream => {
if ('srcObject' in video) {
video.srcObject = localMediaStream;
} else {
video.src = window.URL.createObjectURL(localMediaStream);
}
video.play();
})
.catch(err => {
console.error(`Not available!!!!`, err);
});Run Code Online (Sandbox Code Playgroud)
此代码基于 Wes Bos 的 JavaScript30 课程(#19 Unreal Webcam Fun)中的示例。你可以在这里尝试一下。
此代码似乎在大多数浏览器上都能正常工作,但iPhone 上 iOS 上的 Apple Safari 除外(例如:iPhone 12 Pro、iOS 14.7.1)。在 iPhone 上,我捕获了相机图像的第一帧,之后,该video元素显示一个黑色方块。
奇怪的是,它在 iPad 上运行良好(例如:iPad …