无需Flash即可访问网络摄像头
Access webcam without Flash
我想使用HTML5元素和JavaScript创建一个视频聊天应用程序,我不想使用Flash访问用户的网络摄像头。
如何仅使用HTML和JavaScript实现这一点?
在撰写本文时,最好的解决方案是WebRTC。Chrome、Mozilla和Opera都支持它,但在Internet Explorer和Safari中仍然不可用。
极简主义演示。
Index.html
<!DOCTYPE html>
<head>
</head>
<body>
<video></video>
<script src="webcam.js"></script>
</body>
网络摄像头.js
(function () {
navigator.getMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);
navigator.getMedia(
// constraints
{video:true, audio:false},
// success callback
function (mediaStream) {
var video = document.getElementsByTagName('video')[0];
video.src = window.URL.createObjectURL(mediaStream);
video.play();
},
//handle error
function (error) {
console.log(error);
})
})();
在这里或那里阅读更多
尽管所提供的示例很好,给了我灵感,但在编写这个答案时,Navigator.getUserMedia()函数已经过时了。我已经使用video
标记的srcObejct
和promise方法重写了提供的示例。
<!DOCTYPE html>
<head>
</head>
<body>
<video id="video-cam"></video>
<script>
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
.then(mediaStream => {
const video = document.getElementById('video-cam');
video.srcObject = mediaStream;
video.onloadedmetadata = (e) => {
video.play();
};
})
.catch(error => {
alert('You have to enable the mike and the camera');
});
</script>
</body>
相关文章:
- ASP.NET网络摄像头显示
- 如何在OpenERP中实现网络摄像头
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- 获取网络摄像头的纵横比
- 使用网络摄像头或设备摄像头拍摄照片
- 网络摄像头支持野生动物浏览器
- 如何检查用户是否有网络摄像头
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 使用带有javascript的网络摄像头
- 无法使用我的代码(html/js/css)初始化网络摄像头
- 有没有办法通过网络摄像头直接将二维码扫描到网页中
- 网络摄像头图片作为背景每60秒更新一次
- 重新加载大量网络摄像头的图片
- 如何使用AngularJS获得网络摄像头
- 允许用户通过网络摄像头广播实时流
- 网络摄像头权限请求不适用于本地文件
- 如何从网络摄像头捕获视频并将其上传到服务器
- 网络摄像头未显示在主页上
- 使用getUserMedia后关闭网络摄像头/相机
- 如何使用jpeg_camera JavaScript库时停止网络摄像头