html5调用本机摄像头兼容谷歌浏览器高版本,谷歌浏览器低版本,火狐浏览器

做这个功能的时候在网上查了一些资料,代码如下,在这个代码在谷歌浏览器46版本是没问题的,在火狐浏览器也行,但是在谷歌浏览器高版本下是不兼容的

<div id="body">
    <section class="featured">
        <div class="content-wrapper">
            <hgroup class="title">
                <h1>Welcome to webcam</h1>
                <br />
                <h2>兼容谷歌浏览器46版本,48版本,谷歌浏览器高版本,火狐浏览器</h2>
            </hgroup>

        </div>
    </section>
    <section class="content-wrapper main-content clear-fix">
        <h3>
            html5在本机调用摄像头是没问题,但是部署到外网服务器,谷歌浏览器高版本需要将http要改成https;<br />
            https在IIS7.5配置教程:http://www.cnblogs.com/bobliu/archive/2012/08/05/2590694.html ;
        </h3>
        <ol class="round">
            <li class="one">
                <video id="video" width="320" height="240" autoplay></video>
                <input type="button" value="拍照按钮" id="snap" />
            </li>
            <li class="two">
                <canvas id="canvas" width="320" height="240"></canvas>
            </li>
        </ol>
    </section>
</div>
<script type="text/javascript">

        var canvas =  document.getElementById("canvas");
        var context = canvas.getContext("2d");
        var video = document.getElementById("video");
        $(document).ready(function () {
            videoObj = { video: true };
            var errBack = function (error) {
                console.log("Video capture error: ", error.code);
            };
            if (navigator.getUserMedia) { // Standard
                navigator.getUserMedia(videoObj, function (stream) {
                    video.src = window.webkitURL.createObjectURL(stream);
                    video.play();
                }, errBack);
            } else if (navigator.webkitGetUserMedia) { // WebKit-prefixed
                navigator.webkitGetUserMedia(videoObj, function (stream) {
                    video.src = window.URL.createObjectURL(stream);
                    video.play();
                }, errBack);
            }
            else if (navigator.mozGetUserMedia) { // Firefox-prefixed
                navigator.mozGetUserMedia(videoObj, function (stream) {
                    video.mozSrcObject = stream;
                    video.play();
                }, errBack);
            };
            $("#snap").on("click", function () {
                context.drawImage(video, 0, 0, 640, 480);
            });
        });
</script> 

谷歌浏览器高版本要兼容以上代码,必须要将项目部署成https

https与IIS7.5部署教程可以见这么同学的博客:http://www.cnblogs.com/bobliu/archive/2012/08/05/2590694.html ;

自己做了一个测试demo 点击下载

时间: 2024-08-19 09:17:44

html5调用本机摄像头兼容谷歌浏览器高版本,谷歌浏览器低版本,火狐浏览器的相关文章

C#调用本机摄像头

原文:C#调用本机摄像头 这段时间一个小项目中需要调用本机的摄像头进行拍照,网上搜集了一些资料以及解决的一些小问题,在此记录以便后续使用. 硬件环境:联想C360一体机,自带摄像头 编写环境:vs2010 语言:C# WPF 下载AForge类库,并添加引用: using AForge; using AForge.Controls; using AForge.Video; using AForge.Video.DirectShow; using Size = System.Drawing.Siz

C#实现调用本机摄像头实例

本文实例源自一个项目,其中需要调用本机的摄像头进行拍照,分享给大家供大家参考之用.具体步骤如下: 硬件环境:联想C360一体机,自带摄像头 编写环境:vs2010 语言:C# WPF 实现步骤: 下载AForge类库,并添加引用: using AForge; using AForge.Controls; using AForge.Video; using AForge.Video.DirectShow; using Size = System.Drawing.Size; 在xaml界面中添加Vi

Android 开源项目android-open-project工具库解析之(二) 高版本向低版本兼容,多媒体相关,事件总线(订阅者模式),传感器,安全,插件化,文件

六.Android 高版本向低版本兼容 ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题 项目地址:https://github.com/JakeWharton/ActionBarSherlock Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos APP示例:太多了..现在连google都

nodejs高版本转低版本

需要安装 第一步: npm install --save-dev babel-register npm install --save-dev babel-polyfill //由于只安装babel-register,无法解决低版本问题所以需要这个 npm install --save-dev babel-preset-latest //高版本到低版本js的一条路需要指定babelrc 最后需要创建文件: .babelrc//无扩展名 { "presets": ["latest

CAD图纸高版本转低版本使用迅捷CAD转换器怎么进行?

CAD图纸高版本转低版本使用迅捷CAD转换器怎么进行?CAD图纸文件会由于版本等相关问题而无法将其进行打开的情况发生,解决其最好的方法就是将CAD图纸文件进行版本间的转换操作了,具体应该怎么样进行,使用哪一款软件才能够将其进行转换完成,下面小编就要来教大家的就是CAD图纸高版本转低版本使用迅捷CAD转换器怎么进行的全部操作步骤,希望能够帮助到你们,望采纳! 步骤一:要打开我们自己使用的电脑,打开浏览器在搜索框中输入"迅捷CAD转换器"然后去到迅捷CAD官网上面点击下载然后进行安装! 步

sql server实现高版本向低版本兼容

用的是sql server2014要然后现在要将2014数据库的数据放到2012中操作如: 一,先用2014的数据库导出表结构和数据: 选择需要导出的数据 右键---任务---生成脚本 ---根据下面截图进行操作---点击确认后选择在新窗口显示最后一直下一步到最后. 二,在低版本数据库中新建一个新的数据库,将到出来的脚本直接在新建的数据库中跑即可.

Docker卸载高版本重装低版本后启动提示:driver not supported

解决方法: mv /var/lib/docker /var/lib/docker.old 其实就是docker镜像文件夹目录作怪,新版本的目录无法与旧版本目录相兼容. 不过建议降级的用户这样操作: yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version} ${version}指定了要降级到的版本. 原文地址:https://www.cnblogs.com/EasonJim/p/1

用Visual Studio高版本打开低版本的工程,转换时出现错误:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

解决方法是: 在电脑里面搜索发现 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65  (路径的最后部分可能会不完全一致,会有两三个"C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_&quo

使用html5兼容低版本浏览器

因为html5 新出的一些语义化的标签,在低版本浏览器下不能识别,举个例子,比如你写了一个 header 标签中,写了一段文本,在低版本浏览器下,肯定是能看到的,但是,那是他是不认识 header标签的,只是展示的内容而已,如果你给header添加一个样式,肯定是不可以的,我们要解决的就是让低版本的浏览器认识并解析我们的html5标签. 别人的解决方法,我copy过来了,是自己经过测试的. 第一种方法: <!--[if lt IE 9]> <script src="http:/