HTML5——利用navigator+Video调用摄像头进行录像

             

       以前无聊的时候玩儿过HTML5,感觉里面的很多新标签确实深深震撼了我额。。。。

       今天需求那边要做这样一个功能,在微信里面调用摄像头进行拍摄,然后上传。刚开始最先想到的是Video标签,只要将它的src指定为当前摄像头录制到的视频就可以了。

          后来百度了一段,发现还要用上Navigator,具体代码如下:

             

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">

        window.addEventListener("DOMContentLoaded", function () {
            // Grab elements, create settings, etc.
            var canvas = document.getElementById("canvas"),
		context = canvas.getContext("2d"),
		video = document.getElementById("video"),
		videoObj = { "video": true },
		errBack = function (error) {
		    console.log("Video capture error: ", error.code);
		};

            //
            if (navigator.getUserMedia) { // Standard
                navigator.getUserMedia(videoObj, function (stream) {
                    video.src = stream;
                    video.play();
                }, errBack);
            } else if (navigator.webkitGetUserMedia) { // WebKit-prefixed引擎
                navigator.webkitGetUserMedia(videoObj, function (stream) {
                    video.src = window.webkitURL.createObjectURL(stream);
                    video.play();
                }, errBack);
            }
            else if (navigator.mozGetUserMedia) { // Firefox-prefixed
                navigator.mozGetUserMedia(videoObj, function (stream) {
                    video.src = window.URL.createObjectURL(stream);
                    video.play();
                }, errBack);
            }
        }, false);

    </script>
</head>
     <body>
    <form id="form1" runat="server">
    <div>
        <video id="video" width="640" height="480" autoplay></video>
        <button id="snap">Snap Photo</button>
        <canvas id="canvas" width="640" height="480"></canvas>
    </div>
    </form>
</body>
</html>

         搞完之后同事大哥发布到服务器上然后拿手机测试,发现微信里面的浏览器是不支持摄像头调用的。。。额,,然后就我勒个去了。。。。。。。

         有用到的小伙伴可以拿到自己网站上玩儿玩儿。。。。

时间: 2024-10-27 23:16:42

HTML5——利用navigator+Video调用摄像头进行录像的相关文章

html5调用摄像头实现拍照

技术时刻都在前进着.我们的需求也是时刻在改变着.最近在开发中遇到了用户进行账号注册时需要个人图像,网站提供自动拍照功能.还有在登录了PC之后,手机端进行登录时只需要扫描一下PC上的二维码就可以登录.这对一个网络来说难度是极大的. 技术的进步使我们遇到了html5.下面这个简单粗暴的demo就是来完成这些功能的.直接看代码: <!DOCTYPE html> <html> <head> <title>html5调用摄像头实现拍照</title> &l

canvas-求助大神~网页中调用摄像头左右方向反了额,用拍照软件试了,摄像头本身没问题,下面是代码

问题描述 求助大神~网页中调用摄像头左右方向反了额,用拍照软件试了,摄像头本身没问题,下面是代码 <!DOCTYPE HTML > <html> <head> <title>cam.html</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body>

c#程序调用摄像头程序总是弹出视频源

问题描述 c#程序调用摄像头程序总是弹出视频源 RT,网上有人说是线程堵塞的问题.但是我没有开启与摄像头相关的进程呀.跪求大神帮忙! 解决方案 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace video { public class VideoWork { private const int WM_USER = 0x

javacv-JavaCV调用摄像头如何调节分辨率?高分 求高手

问题描述 JavaCV调用摄像头如何调节分辨率?高分 求高手 求高手! 想用JavaCV获取摄像头图像并拍照,买的高分辨率的摄像头,可是拍出来的照片才55kb,远不及直接连电脑拍出来的效果,请教如何在java程序中调节分辨率http://blog.csdn.net/sivyer123/article/details/22411861 这是示例程序 public class video { public static void main(String[] args) throws Exceptio

基于HTML5实现的超酷摄像头(HTML5 webcam)拍照功能 - photoboo

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在线演示 WebRTC可能是明年最受关注的HTML5标准了,Mozilla为此开发了一套帮助你控制硬件的API,例如,摄像头,麦克风,或者是加速表.你可以不依赖其它的插件来调用你需要的本机11585.html">硬件设备. 在今天的这篇文章中,我们将介绍来自Wolfram Hempel开发的Photobooth.js,使用这个

调用摄像头拍照

问题描述 请问WPF程序如何调用摄像头拍照??? 解决方案 解决方案二:Help!!!!!thanks解决方案三:哦哦,没弄过,help2222解决方案四:帮你顶一下,之前看了点点WPF,录像监控..解决方案五:该回复于2011-12-13 11:48:48被版主删除解决方案六:你是要拍照还是视频?视频是可以使用encoder的api开发,拍照的话没有用过!

[Java] 利用Axis库调用C#的Web Service

[Java] 利用Axis库调用C#的Web Service 编写者 日期 关键词 郑昀@ultrapower 2005-8-2 Java Web Service Axis C#   概述 试图从Java调用C#编写的Web Service,借用了王咏刚的wsCaller源代码中DynamicInvoker类. 开始不清楚DynamicInvoker类的portName的含义,望文生义,以为是8080之类的端口号,实际上是下面wsdl中的wsdl:port 节点的"name"属性值&q

html5如何打开多个摄像头?

问题描述 html5如何打开多个摄像头? 我会用html5的getUserMedia()可以获得本地摄像头的视频流,但是只能获取一个摄像头的.如果有两个摄像头,要怎么同时获取它们的视频流? 解决方案 找了半天,也没找到解决方案. 间接方案是让开发商指定?或者是让用户选择? 详情看这个http://www.brucelawson.co.uk/2012/specifying-which-camera-in-getusermedia/ 或者这个可能对你有帮助http://blog.gingertech

利用反射动态调用类成员

动态 (C#)利用反射动态调用类成员 使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): public object InvokeMember( string name, BindingFlags invokeAttr, Binder binder, object target, object[] args ); 参数 name String,它包含要调用的构造函数.方法.属性或字段成员的名称. - 或 - 空字符串 (""