模块camera

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

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

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

两个核心方法

  1. captureImg();
  2. startVideoCapture(); / stopVideoCapture();

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

具体

  1. var camera = plus.camera.getCamera();
  2. 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',width:'2000px',height:'2000px'}

示例

  1. <header class="mui-bar mui-bar-nav">
  2. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  3. <h1 class="mui-title">调用摄像头</h1>
  4. </header>
  5. <div class="mui-content mui-content-padded">
  6. <button type="button" class="mui-btn mui-btn-blue mui-btn-block" id="oCamera">拍照片</button>
  7. <button type="button" class="mui-btn mui-btn-blue mui-btn-block" id="oVideo">录像</button>
  8. <ul class="mui-table-view" id="imageList">
  9. <li class="mui-table-view-cell">
  10. <a class="mui-navigate-right">
  11. Item 1
  12. </a>
  13. </li>
  14. </ul>
  15. <img src="" alt="" id="imgpath" />
  16. <video id="videoC" width="100%" controls="controls"></video>
  17. </div>
  18. <script src='http://libs.baidu.com/jquery/1.8.3/jquery.min.js'></script>
  19. <script src="js/mui.min.js"></script>
  20. <script type="text/javascript">
  21. mui.plusReady(function(){
  22. $("#oCamera").bind('tap',function(){
  23. var camera = plus.camera.getCamera();
  24. camera.captureImage(function(ImageUrl){
  25. var imageItem = "<li class='mui-table-view-cell'><a class='mui-navigate-right'>"+ImageUrl+"</a></li>";
  26. $("#imageList").append(imageItem);
  27. plus.io.resolveLocalFileSystemURL(ImageUrl,function(entry){
  28. $("#imgpath").attr('src',entry.fullPath);
  29. });
  30. },function(e){
  31. alert(e.message);
  32. console.log(e.message);
  33. },{filename:"_doc/photo/"});
  34. });
  35. $("#oVideo").bind('tap',function(){
  36. var camera = plus.camera.getCamera();
  37. camera.startVideoCapture(function(ImageUrl){
  38. var imageItem = "<li class='mui-table-view-cell'><a class='mui-navigate-right'>"+ImageUrl+"</a></li>";
  39. $("#imageList").append(imageItem);
  40. plus.io.resolveLocalFileSystemURL(ImageUrl,function(entry){
  41. $("#videoC").attr('src',entry.fullPath);
  42. });
  43. },function(e){
  44. alert(e.message);
  45. console.log(e.message);
  46. },{filename:"_doc/video/"});
  47. });
  48. });
  49. </script>

摄像头的管理(camera) ---- HTML5+的更多相关文章

  1. 在Ubuntu平台上创建Cordova Camera HTML5应用

    在这篇文章中,我们将具体介绍怎样使用Cordova Camera HTML5 应用.很多其它关于Cordova的开发指南,开发人员能够參考文章"the Cordova Guide" ...

  2. 摄像头标定GML Camera Calibration

    摄像头标定GML Camera Calibration GML Camera Calibration官方版是一款十分优秀出色的相机标定软件,GML Camera Calibration官方版界面友好, ...

  3. 摄像头(4)用Camera和SurfaceView自定义拍照程序

    定制拍照程序的基本步骤 1,打开照相机:Camera.open 这是独占方式打开的 2,创建SurfaceView对象 多缓冲,多线程view 3,添加回调事件监听器(SurfaceHolder.ad ...

  4. Html5 <video>实现摄像头监控问题:html5并不支持rtsp协议,所以使用vlc进行转码,将rtsp转http流,这样<video>才可以直接播放

    今天在写html5中播放旷视C2摄像头视频监控的功能,查了很多资料,才发现Html5 <video>并不支持rtsp协议.后来查到使用第三方转码才得以实现. 这里把方法写下来分享给大家. ...

  5. 图书管理之HTML5压缩旋转裁剪图片总结

    整体思路  : 在移动端压缩图片并且上传主要用到filereader.canvas 以及 formdata 这三个h5的api.逻辑并不难.整个过程就是: (1)用户使用input file上传图片的 ...

  6. 手机相册管理(gallery) ---- HTML5+

    模块:gallery Gallery模块管理系统相册,支持从相册中选择图片或视频文件.保存图片或视频文件到相册等功能.通过plus.gallery获取相册管理对象. 管理我们手机上用到的相册:选择图片 ...

  7. 系统事件管理(Events) ---- HTML5+

    模块:events Events模块管理客户端事件,包括系统事件,如扩展API加载完毕.程序前后台切换等. 比如说:网络的链接的和断开这种事件,系统从前台走到后台这种事件: 不包括:点击和滑动页面事件 ...

  8. 设备信息的管理(Device) ---- HTML5+

    模块:Device Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI.IMSI.型号.厂商等.通过plus.device获取设备信息管理对象. 应用场景:打电话,铃声提醒,震动提醒 ...

  9. [Unity3D][Vuforia][ios]使用vuforia的unity3d库在ios中摄像头只显示黑色,不显示摄像头,NO CAMERA的解决方案

    注:我使用的是Vuforia 4.0SDK Unity3D5.0版本,跑的ios系统为8.1 我在Vuforia官方讨论贴子中看到这其实是新手都会遇到的问题 贴子地址: https://develop ...

随机推荐

  1. Mysql: Connect/C++ 使用过程中发现返回 std::string 造成的内存泄露

    在使用 Connect/C++ ,测试时发现在调用 getString 出现了内存增长的情况. ConstructOutput(); //打印出当前内存 ;i<;++i) { prepareSt ...

  2. 判断一个string是否以数字开头

    public static void main(String[] args) {        Pattern pattern =null;    String content = "30. ...

  3. l2正则化

    在机器学习中,无论是分类还是回归,都可能存在由于特征过多而导致的过拟合问题.当然解决的办法有 (1)减少特征,留取最重要的特征. (2)惩罚不重要的特征的权重. 但是通常情况下,我们不知道应该惩罚哪些 ...

  4. Windoows窗口程序四

    子窗口的创建 .创建时要设置父窗口句柄 .创建风格要增加WS_CHILD|WS_VISIBLE HWND CreateChild(LPSTR lpClassName,LPSTR lpWndName,H ...

  5. VHD和VHDX

    VHD和VHDX没有太大区别,只是最大容量不一样,用是一样用,一定要转用ghost11,是新建vhdx,然后把vhd和vhdx个挂载,之后用ghost11分区到分区还原. VHD和VHDX简介 相对之 ...

  6. Linux 获取登录者IP

    在linux中有时须要获得登录者的IP,这里有两种方法.先使用who am i 获取登录IP,然后截取字符串: 1.awk截取,sed替换 who am i | awk '{print $5}' | ...

  7. CentOS运维常用管理操作命令

    自己整理的整理Linux常用运维和linux常用管理操作命令,当然不是非常详细和丰富,但是也基本上够用了吧.欢迎留言补充更多的Linux常用运维和linux常用管理操作命令.不断完善中.... 备份m ...

  8. ef中用lambda expressions时要注意(m=>m.id ==b ) 此时的b只能是基本的数据类型 。连属性都不能用

    ef中用lambda expressions时要注意(m=>m.id ==b ) 此时的b只能是基本的数据类型 .连属性都不能用

  9. eclipse安装spring tool suite插件

    在实际项目开发时,如果我们创建了一个spring文件,其实也就是个xml文件,如果没有集成spring的开发工具,创建的就是一个单纯的xml文件.安装spring插件以后创建spring配置文件会方便 ...

  10. CSS使用学习总结

    尽量少使用类,因为可以层叠识别,如: .News h3而不必在h3上加类 <div class=”News”> <h3></h3> <h2></h ...