html5 – 如何使用getUserMedia获取网络摄像头的大小?

我试图找出使用getUserMedia从网络摄像头获取的图像的大小.

现在,在我的Macbook中,我估计是一台720p的相机,但是我得到的图像是640×480.我假设这并不总是这样,但是,我想要尽可能多地处理相机. (我关心长宽比大小本身,我只想确保图片不显示拉伸)

有可能做到吗?

谢谢!
丹尼尔

解决方法

您应该可以使用videoWidth和videoHeight属性,如下所示:
// Check camera stream is playing by getting its width
video.addEventListener('playing',function() {
    if (this.videoWidth === 0) {
        console.error('videoWidth is 0. Camera not connected?');
    }
},false);

更新:实际上,这在Opera中起作用,但似乎不再支持Chrome,并且还没有在Firefox中实现(至少不是视频流).不过,在HTML5 spec,希望这些浏览器的路线图.

更新2:这是工作,但听的事件是“播放”而不是“播放”(固定在上面的代码).当播放play()方法返回时,“播放”事件触发,而播放实际开始时,“播放”事件触发.在Opera,Chrome和Firefox中进行了测试.

更新3:Firefox 18似乎反复触发“播放”事件,这意味着如果您在侦听器中执行大量代码,浏览器可能会停止播放.更好地删除侦听器在它被触发后,像这样:

var videoWidth,videoHeight;
var getVideoSize = function() {
    videoWidth = video.videoWidth;
    videoHeight = video.videoHeight;
    video.removeEventListener('playing',getVideoSize,false);
};

video.addEventListener('playing',false);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


h5页面是什么意思
html5复合选择器都有哪些
什么是html5响应式布局
h5页面制作策划怎么做
html5关系选择器有哪些
h5有哪些缓存机制
position中的sticky如何使用
h5页面制作用什么软件
h5链接怎么做
html5层次选择器有哪些
h5是什么意思
localstorage有哪些方法
h5怎么制作点击图标
h5怎么制作倒计时
h5怎么生成链接
h5表格边框怎么设置
h5兼容问题怎么解决
h5怎么做交互设计
h5怎么做进度条
h5怎么加链接