摄像头的管理(camera) ---- HTML5+

模块camera

Camera模块管理设备的摄像头,可用于拍照、摄像操作,通过plus.camera获取摄像头管理对象。

应用场景:保存自拍,保存照片,上传照片,保存视频,上传视频;

通过之前的模块可以大致知道:这个是封装了一个camera的一个对象,这个对象有两个方法,一个拍照的方法,一个摄像的方法;剩下的就是一个回调;

两个核心方法

captureImg();
startVideoCapture(); / stopVideoCapture();

方法:Camera plus.camera.getCamera(index); 1,主摄像头,2 ,辅摄像头

具体

var camera = plus.camera.getCamera();
camera.captureImage( successCB, errorCB, option );

首先是两个回调:成功回调和失败回调;成功回调返回一个图片的存放路径;失败回调返回一个error对象,包含两个信息:code,message;
其次是option对象:
  attribute string filename:拍照或摄像文件保存的路径,以 “ / ”结尾是路径,自动生成文件名;(名字也可以指定,但是不要这样)
  attribute string format:拍照或摄像的文件格式;
  attribute string index:1,主摄像头;2,辅助摄像头,仅仅ios支持;
  attribute PopPosition popover:拍照或摄像界面弹出指示区域,仅ipad{top:'10px',left:'10px','2000px',height:'2000px'}

示例

<header class="mui-bar mui-bar-nav">
    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
    <h1 class="mui-title">调用摄像头</h1>
</header>
<div class="mui-content mui-content-padded">
    <button type="button" class="mui-btn mui-btn-blue mui-btn-block" id="oCamera">拍照片</button>
    <button type="button" class="mui-btn mui-btn-blue mui-btn-block" id="oVideo">录像</button>
    <ul class="mui-table-view" id="imageList">
        <li class="mui-table-view-cell">
            <a class="mui-navigate-right">
                Item 1
            </a>
        </li>
    </ul>
    <img src="" alt="" id="imgpath" />
    <video id="videoC" width="100%" controls="controls"></video>
</div>
<script src='http://libs.baidu.com/jquery/1.8.3/jquery.min.js'></script>
<script src="js/mui.min.js"></script>
<script type="text/javascript">
mui.plusReady(function(){
    $("#oCamera").bind('tap',function(){
        var camera = plus.camera.getCamera();
        camera.captureImage(function(ImageUrl){
            var imageItem = "<li class='mui-table-view-cell'><a class='mui-navigate-right'>"+ImageUrl+"</a></li>";
            $("#imageList").append(imageItem);
            plus.io.resolveLocalFileSystemURL(ImageUrl,function(entry){
                $("#imgpath").attr('src',entry.fullPath);
            });            
        },function(e){
            alert(e.message);
            console.log(e.message);
        },{filename:"_doc/photo/"});
    });
    $("#oVideo").bind('tap',function(){
        var camera = plus.camera.getCamera();
        camera.startVideoCapture(function(ImageUrl){
            var imageItem = "<li class='mui-table-view-cell'><a class='mui-navigate-right'>"+ImageUrl+"</a></li>";
            $("#imageList").append(imageItem);
            plus.io.resolveLocalFileSystemURL(ImageUrl,function(entry){
                $("#videoC").attr('src',entry.fullPath);
            });            
        },function(e){
            alert(e.message);
            console.log(e.message);
        },{filename:"_doc/video/"});
    });
});
</script>
原文地址:https://www.cnblogs.com/e0yu/p/7843544.html