调用摄像头和麦克风

技术基础:

  依托webRTC(网页实时通信)规范实现接收来自设备上的网络摄像头和麦克风数据

  其中主要依赖navigator.getUserMedia()API方法(因为安全原因,此html文件只能通过网站服务器来访问文件,网上有各种搭建服务器的方法在此就不介绍了)

正式开始:

  由于不同浏览器对getUserMedia()的使用方法不同,需要加不同的前缀,所以先使用一段代码保障所有浏览器都能正常使用:

   1 navigator.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;

  之后调用getUserMedia()方法.

  需要传入三个参数调用它,第一个是希望进行访问的媒体类型(目前只有video和audio两个可选项),第二个是调用成功时执行的回调函数,第三个是调用出问题时调用的回调函数。

   1 navigator.getUserMedia({ 2 video:true, 3 audio:true 4 },onSuccess,onError);

  

  完整版代码如下:

 1 (function(){
 2     navigator.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;
 3     if (navigator.getUserMedia) {
 4
 5         navigator.getUserMedia({
 6             video:true,
 7             audio:true
 8         },onSuccess,onError);
 9
10     }
11     else
12     {
13         throw new Error("sorry ,getUserMedia() is navigator supported in your browser");
14     }
15 }())
16 function onSuccess(stream){
17     alert("get the navigator getUserMedia");
18     var video=document.createElement("video");
19     videoSource=window.URL.createObjectURL(stream);
20     video.autoplay=true;
21     video.src=videoSource;
22
23     document.body.appendChild(video);
24     start.addEventListener(‘click‘,function(){beginbutton(video);},false);
25     pause.addEventListener(‘click‘,function(){stopbutton(video);},false);
26 }
27 function onError(){
28     throw new Error("there is problem");
29 }

  将其保存为vedio.js文件

编写html文件保存名为unitl.html:

  代码如下:

  

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 </head>
 7 <script src="video.js" type="text/javascript" defer="true">
 8 </script>
 9 <style>
10 ul{
11     list-style:url(security.gif);
12     color:rgba(199,228,231,0.85)
13 }
14 </style>
15 <body>
16
17 </body>
18 </html>

  接下来在服务器打开unitl.html即可看到摄像头和麦克风被调用

  

时间: 2024-10-17 18:11:19

调用摄像头和麦克风的相关文章

升级iOS10之后调用摄像头/麦克风等硬件程序崩溃闪退的问题

在升级到iOS10之后, 开发过程中难免会遇到很多的坑, 下面是一些常见的坑, 我做了一些整理, 希望对大家开发有帮助: &1. 调用视频,摄像头, 麦克风,等硬件程序崩溃闪退的问题: 要注意的问题 iOS10 对隐私权限的管理更为严格 ,比如访问的摄像头.麦克风等硬件,都需要提前请求应用权限.允许后才可以使用,或者现在要提前声明,虽然以往要求不严格. 在iOS10中比如遇到崩溃,日志: *This app has crashed because it attempted to access p

麦子学院Android实战调用摄像头代码分享

Android如何实现调用摄像头?在安卓APP开发的过程中,经常会需要调用手机自身摄像头拍照的代码,那么android调用摄像头的代码是什么呢?现在麦子学院android开发老师告诉大家,android调用摄像头这个方法十分的简单实用,有需要的小伙伴可以参考下. 应用场景: 在Android开发过程中,有时需要调用手机自身设备的功能,本文侧重摄像头拍照功能的调用. 知识点介绍: 使用权限:调用手机自身设备功能(摄像头拍照功能),应该确保已经在AndroidManifest.xml中正确声明了对摄

win8 metro 调用摄像头拍摄照片并将照片保存在相应的位置

刚刚做过这类开发,所以就先献丑了,当然所贴上的源码都是经过验证过的,已经运行成功了,希望可以给大家一些借鉴: 下面是metro UI代码: <Page x:Class="Camera.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

android调用摄像头拍照

调用手机摄像头拍照,获取拍照后的图片数据.以下代码是在activity中:     // 调用摄像头         Button b = (Button) findViewById(R.id.btn1);     b.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             // Here we fire the inte

【C#】#100 调用摄像头

需求:由于项目需要获得用户的头像,所以需要用C#调用摄像头获取头像. 下面写一个调用摄像头的方法 案例:调用摄像头的一个DEMO[效果图] 使用的类库:AForge.dll   [Demo下载,Demo里面有类库] 1.检测电脑上的摄像头设备 FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); 用Count判断摄像头设备的个数,如果没有摄像头,则抛出异常[自行

使用vue做移动app时,调用摄像头扫描二维码

现在前端技术发展飞快,前端都能做app了,那么项目中,也会遇到调用安卓手机基层的一些功能,比如调用摄像头,完成扫描二维码功能 下面我就为大家讲解一下,我在项目中调用这功能的过程. 首先我们需要一个中间框架,hbuilder http://www.html5plus.org/doc/zh_cn/accelerometer.html 这个是html5+的文档地址,我们找到Barcode模块, 有这么多,然后我们往下找 找到这段代码 <!DOCTYPE html> <html> <

Android入门(十六)调用摄像头相册

原文链接:http://www.orlion.ga/665/ 一.调用摄像头 创建一个项目ChoosePicDemo,修改activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&qu

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

以前无聊的时候玩儿过HTML5,感觉里面的很多新标签确实深深震撼了我额.... 今天需求那边要做这样一个功能,在微信里面调用摄像头进行拍摄,然后上传.刚开始最先想到的是Video标签,只要将它的src指定为当前摄像头录制到的视频就可以了. 后来百度了一段,发现还要用上Navigator,具体代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <t

win7系统下使用openCV调用摄像头问题

鄙人今日尝试使用openCV调用摄像头做图片中圆的圆心位置检测时,意外发现程序能成功调用笔记的集成摄像头,但却无法调用外接的USB摄像头.(使用的为OpenCV1.0 + VC6.0) 使用程序如下: #include"cv.h"#include"highgui.h"#include"cvcam.h"#include"iostream"using namespace std; int main(int argc,char* a