我在玩弄html5的新规范,准确地说就是网络摄像头的功能。
由following this tutorial提供。我得到了以下错误:
Native web camera streaming (getUserMedia) is not supported in this browser. 这是由if语句获取的:
if (navigator.getUserMedia)现在,我确信在我的浏览器中启用了navigator.getUserMedia,因为这些示例here工作得很好
因此,我修改了if中的代码,如下所示:
if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia)但是现在,我得到了一个javascript错误:
Uncaught TypeError: Object #<Navigator> has no method 'getUserMedia' 在这一行:
navigator.getUserMedia('video', successCallback, errorCallback);这真的说不通!它正在处理我发布的最后一个链接!
有什么想法吗?
提前谢谢。
发布于 2012-09-13 23:26:14
如果你正在测试navigator.getUserMedia、navigator.webkitGetUserMedia、navigator.mozGetUserMedia和navigator.msGetUserMedia,那么你不能保证navigator.getUserMedia()是可用的。可能是那个,也可能是其他三个中的任何一个。您可以尝试如下所示(来自getUserMedia.js):
navigator.getUserMedia_ = ( navigator.getUserMedia
|| navigator.webkitGetUserMedia
|| navigator.mozGetUserMedia
|| navigator.msGetUserMedia);
if ( !! navigator.getUserMedia_) {
navigator.getUserMedia_('video', successCallback, errorCallback);
//The rest of your code发布于 2019-07-09 01:16:58
navigator.getUserMedia()已弃用。参见MDN。
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia
请改用navigator.mediaDevices.getUserMedia(constraints);。
https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
发布于 2013-05-31 02:22:22
这是一项新技术。Yoy必须有Firefox/Chrome/Opera浏览器,并且必须更新。然后,试试这个:
function showCamera() { var streaming = false,
video = window.content.document.createElement("video"),
cover = window.content.document.createElement("div"),
canvas = window.content.document.createElement("canvas"),
photo = window.content.document.createElement("img"),
startbutton = window.content.document.createElement("button"),
width = 320,
height = 0;
photo.src = "http://placekitten.com/g/320/261"; window.content.document.body.insertBefore(video, window.content.document.body.firstChild);
var navigator = window.navigator;
navigator.getMedia = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
navigator.getMedia(
{
video: true,
audio: false
},
function(stream) {
if (navigator.mozGetUserMedia) {
video.mozSrcObject = stream;
} else {
var vendorURL = window.URL || window.webkitURL;
video.src = vendorURL.createObjectURL(stream);
}
video.play();
},
function(err) {
console.log("An error occured! " + err);
} );
video.addEventListener('canplay', function(ev){
if (!streaming) {
height = video.videoHeight / (video.videoWidth/width);
video.setAttribute('width', width);
video.setAttribute('height', height);
canvas.setAttribute('width', width);
canvas.setAttribute('height', height);
streaming = true;
} }, false);
function takepicture() {
canvas.width = width;
canvas.height = height;
canvas.getContext('2d').drawImage(video, 0, 0, width, height);
var data = canvas.toDataURL('image/png');
photo.setAttribute('src', data); }
startbutton.addEventListener('click', function(ev){
takepicture();
ev.preventDefault(); }, false); }
showCamera();如果您的浏览器是Firefox,但仍然无法工作,请转到about:config并设置/添加一个布尔变量,该变量的值为media.navigator.enabled
来源:https://developer.mozilla.org/en-US/docs/WebRTC/Taking_webcam_photos
P/d:我在一个Greasemonkey脚本中使用了这段代码,它起作用了。我对原始代码的第一行做了一些修改。
https://stackoverflow.com/questions/12407321
复制相似问题