方法:

getCamera: 获取摄像头管理对象

对象:

Camera: 摄像头对象

CameraOption: JSON对象。调用摄像头的參数

PopPosition: JSON对象,弹出拍照或摄像界面指示位置

回调方法:

CameraSuccessCallback: 调用摄像头操作成功回调

CameraErrorCallback: 摄像头操作失败回调

权限:

功能模块(permissions)

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "Camera": {
  6. "description": "摄像头"
  7. }
  8. }
  9. }

getCamera

获取摄像头管理对象

  1. Camera plus.camera.getCamera( index );

说明:

获取须要操作的摄像头对象。假设要进行拍照或摄像操作,需先通过此方法获取摄像头对象。

參数:

index: ( Number ) 可选 要获取摄像头的索引值

指定要获取摄像头的索引值。1表示主摄像头。2表示辅摄像头。

假设没有设置则使用系统默认主摄像头。

返回值:

Camera : 摄像头对象

平台支持:

  1. Android - 2.2+ (支持)
  2. iOS - 4.3+ (支持)

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. var r = null;
  10. // 扩展API载入完成,如今能够正常调用扩展API
  11. function onPlusReady() {
  12. // 获取设备默认的摄像头对象
  13. var cmr = plus.camera.getCamera();
  14. // ......
  15. }
  16. </script>
  17. </head>
  18. <body>
  19. </body>
  20. </html>

Camera

摄像头对象

  1. interface Camera {
  2. readonly attribute String[] supportedImageResolutions;
  3. readonly attribute String[] supportedVideoResolutions;
  4. readonly attribute String[] supportedImageFormats;
  5. readonly attribute String[] supportedVideoFormats;
  6. function void captureImage( successCB, errorCB, option );
  7. function void startVideoCapture( successCB, errorCB, option );
  8. function void stopVideoCapture();
  9. }

属性:

  1. supportedImageResolutions: 字符串数组,摄像头支持的拍照分辨率
  2. supportedVideoResolutions: 字符串数组,摄像头支持的摄像分辨率
  3. supportedImageFormats: 字符串数组,摄像头支持的拍照文件格式
  4. supportedVideoFormats: 字符串数组。摄像头支持的摄像文件格式

方法:

  1. captureImage: 进行拍照操作
  2. startVideoCapture: 调用摄像头进行摄像操作
  3. stopVideoCapture: 结束摄像操作

supportedImageResolutions

字符串数组,摄像头支持的拍照分辨率

说明:

Array 类型 仅仅读属性

属性类型为String[],若不支持此属性则返回空数组对象。摄像头支持的拍照图片分辨率字符串形式“WIDTH*Height”,如“400*800”;假设支持随意自己定义分辨率则“*”。

平台支持:

  1. Android (支持)
  2. iOS (不支持): 返回空数组对象

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成,如今能够正常调用扩展API
  10. function onPlusReady() {
  11. var cmr = plus.camera.getCamera();
  12. alert( "Camera supperted image resolutions: " + cmr.supportedImageResolutions );
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. </body>
  18. </html>

supportedVideoResolutions

字符串数组,摄像头支持的摄像分辨率

说明:

Array 类型 仅仅读属性

属性类型为String[],若不支持此属性则返回空数组对象。

摄像头支持的视频分辨率字符串形式为“WIDTH*Height”,如“400*800”;假设支持随意自己定义分辨率则“*”。

平台支持:

  1. Android (支持)
  2. iOS (不支持): 返回空数组对象

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成,如今能够正常调用扩展API
  10. function onPlusReady() {
  11. var cmr = plus.camera.getCamera();
  12. alert( "Camera supperted image resolutions: " + cmr.supportedImageResolutions );
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. </body>
  18. </html>

supportedImageFormats

字符串数组,摄像头支持的拍照文件格式

说明:

Array 类型 仅仅读属性

属性类型为String[],若不支持此属性则返回空数组对象。

摄像头支持的图片文件格式字符串形式为文件格式后缀名,如“jpg”、“png”、“bmp”。

平台支持:

  1. Android (支持)
  2. iOS (不支持): 返回空数组对象

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成。如今能够正常调用扩展API
  10. function onPlusReady() {
  11. var cmr = plus.camera.getCamera();
  12. alert( "Camera supperted image formats: " + cmr.supportedImageFormats );
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. </body>
  18. </html>

supportedVideoFormats

字符串数组。摄像头支持的摄像文件格式

说明:

Array 类型 仅仅读属性

属性类型为String[],若不支持此属性则返回空数组对象。摄像头支持的视频文件格式字符串形式为文件格式后缀名,如“3gp”、“mp4”、“avi”。

平台支持:

  1. Android (支持)
  2. iOS (不支持): 返回空数组对象

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成。如今能够正常调用扩展API
  10. function onPlusReady() {
  11. var cmr = plus.camera.getCamera();
  12. alert( "Camera supperted video formats: " + cmr.supportedVideoFormats );
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. </body>
  18. </html>

captureImage

进行拍照操作

  1. cmr.captureImage( successCB, errorCB, option );

说明:

摄像头资源为独占资源。假设其他程序或页面已经占用摄像头。再次操作则失败。 拍照操作成功将通过successCB返回拍照获取的图片路径。

可通过option设置摄像头的各种属性參数。

參数:

  1. successCB: ( CameraSuccessCallback ) 必选 拍照操作成功的回调函数
  2. errorCB: ( CameraErrorCallback ) 可选 拍照操作失败的回调函数
  3. option: ( CameraOption ) 必选 摄像头拍照參数

返回值:

void : 无

平台支持:

  1. Android - 2.2+ (支持)
  2. iOS - 4.3+ (支持)

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成,如今能够正常调用扩展API
  10. function onPlusReady() {
  11. console.log("plusready");
  12. }
  13. // 拍照
  14. function captureImage(){
  15. var cmr = plus.camera.getCamera();
  16. var res = cmr.supportedImageResolutions[0];
  17. var fmt = cmr.supportedImageFormats[0];
  18. console.log("Resolution: "+res+", Format: "+fmt);
  19. cmr.captureImage( function( path ){
  20. alert( "Capture image success: " + path );
  21. },
  22. function( error ) {
  23. alert( "Capture image failed: " + error.message );
  24. },
  25. {resolution:res,format:fmt}
  26. );
  27. }
  28. </script>
  29. </head>
  30. <body>
  31. <button onclick="captureImage()">拍照</button>
  32. </body>
  33. </html>

startVideoCapture

调用摄像头进行摄像操作

  1. cmr.startVideoCapture( successCB, errorCB, option );

说明:

摄像头资源为独占资源,假设其他程序或页面已经占用摄像头。再次操作则失败。 拍照操作成功将通过successCB返回摄像获取的视频文件路径。

可通过option设置摄像头的各种属性參数。

參数:

  1. successCB: ( CameraSuccessCallback ) 必选 摄像操作成功的回调函数
  2. errorCB: ( CameraErrorCallback ) 可选 拍摄像操作失败的回调函数
  3. option: ( CameraOption ) 必选 摄像头拍照參数

返回值:

void : 无

平台支持:

  1. Android - 2.2+ (支持)
  2. iOS - 4.3+ (支持)

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成。如今能够正常调用扩展API
  10. function onPlusReady() {
  11. console.log("plusready");
  12. }
  13. // 摄像
  14. function videoCapture(){
  15. var cmr = plus.camera.getCamera();
  16. var res = cmr.supportedVideoResolutions[0];
  17. var fmt = cmr.supportedVideoFormats[0];
  18. console.log("Resolution: "+res+", Format: "+fmt);
  19. cmr.startVideoCapture( function( path ){
  20. alert( "Capture video success: " + path );
  21. },
  22. function( error ) {
  23. alert( "Capture video failed: " + error.message );
  24. },
  25. {resolution:res,format:fmt}
  26. );
  27. }
  28. </script>
  29. </head>
  30. <body>
  31. <button onclick="videoCapture()">摄像</button>
  32. </body>
  33. </html>

stopVideoCapture

结束摄像操作

cmr.stopVideoCapture();

说明:

開始调用摄像头进行摄像操作后,可在后台结束摄像操作,与用户在界面结束操作效果一致。 摄像操作成功将通过startVideoCapture函数中的successCB返回拍照获取的图片路径。

用户假设没有进行摄像操作关闭摄像头页面则调用失败回调函数。

參数:

返回值:

void : 无

平台支持:

  1. Android - ALL (不支持): 暂不支持调用此API停止摄像。须要手动操作停止。
  2. iOS - ALL (不支持): 暂不支持调用此API停止摄像。须要手动操作停止。

演示样例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Camera Example</title>
  6. <script type="text/javascript">
  7. // 扩展API载入完成后调用onPlusReady回调函数
  8. document.addEventListener( "plusready", onPlusReady, false );
  9. // 扩展API载入完成。如今能够正常调用扩展API
  10. function onPlusReady() {
  11. console.log("plusready");
  12. }
  13. var cmr=null;
  14. // 摄像
  15. function videoCapture(){
  16. cmr = plus.camera.getCamera();
  17. var res = cmr.supportedVideoResolutions[0];
  18. var fmt = cmr.supportedVideoFormats[0];
  19. console.log("Resolution: "+res+", Format: "+fmt);
  20. cmr.startVideoCapture( function( path ){
  21. alert( "Capture video success: " + path );
  22. },
  23. function( error ) {
  24. alert( "Capture video failed: " + error.message );
  25. },
  26. {resolution:res,format:fmt}
  27. );
  28. // 拍摄10s后自己主动完成
  29. setTimeout( stopCapture, 10000 );
  30. }
  31. // 停止摄像
  32. function stopCapture(){
  33. console.log("stopCapture");
  34. cmr.stopVideoCapture();
  35. }
  36. </script>
  37. </head>
  38. <body>
  39. <button onclick="videoCapture()">摄像</button><br/>
  40. <button onclick="stopCapture()">停止摄像</button>
  41. </body>
  42. </html>

CameraOption

JSON对象。调用摄像头的參数

  1. interface CameraOption {
  2. attribute String filename;
  3. attribute String format;
  4. attribute String index;
  5. attribute PopPosition popover;
  6. }

属性:

filename: (String 类型 )拍照或摄像文件保存的路径

  1. 可设置详细文件名称(如"_doc/camera/a.jpg");也可仅仅设置路径,以"/"结尾则表明是路径(如"_doc/camera/")。如未设置文件名称称或设置的文件名称冲突则文件名称由程序程序自己主动生成。
  2. format: (String 类型 )拍照或摄像的文件格式
  3. 可通过Camera对象的supportedImageFormatssupportedVideoFormats获取,假设设置的參数无效则使用系统默认值。
  4. index: (String 类型 )拍照或摄像默认使用的摄像头
  5. 拍照或摄像界面默认使用的摄像头编号。1表示主摄像头,2表示辅摄像头。
  1. 平台支持
  2. Android - 2.2+ (不支持): 暂不支持设置摄像头,忽略此属性值
  3. iOS - 4.3+ (支持)
  4. popover: (PopPosition 类型 )拍照或摄像界面弹出指示区域
  5. 对于大屏幕设备如iPad,拍照或摄像界面为弹出窗体,此时可通过此參数设置弹出窗体位置,其为JSON对象,格式如{top:"10px",left:"10px",width:"200px",height:"200px"},默认弹出位置为屏幕居中。
  6. 平台支持
  7. Android - ALL (不支持): 暂不支持设置摄像头。忽略此属性值
  8. iOS - 5.0+ (支持): iPad设备支持此属性,iPhone/iTouch上忽略此属性值

PopPosition

JSON对象,弹出拍照或摄像界面指示位置

属性:

  1. top: (String 类型 )指示区域距离容器顶部的距离
  2. 弹出拍照或摄像窗体指示区域距离容器顶部的距离,支持像素值(如"100px")和百分比(如"50%")。
  3. left: (String 类型 )指示区域距离容器左側的距离
  4. 弹出拍照或摄像窗体指示区域距离容器左側的距离,支持像素值(如"100px")和百分比(如"50%")。
  5. width: (String 类型 )指示区域的宽度
  6. 弹出拍照或摄像窗体指示区域的宽度,支持像素值(如"100px")和百分比(如"50%")。
  7. height: (String 类型 )指示区域的高度
  8. 弹出拍照或摄像窗体指示区域的高度。支持像素值(如"100px")和百分比(如"50%")。

CameraSuccessCallback

调用摄像头操作成功回调

  1. void onSuccess( capturedFile ) {
  2. // Caputre image/video file code.
  3. }

说明:

调用摄像头操作成功的回调函数。在拍照或摄像操作成功时调用,用于返回图片或视频文件的路径。

參数:

  1. capturedFile: ( String ) 必选 拍照或摄像操作保存的文件路径

返回值:

void : 无

平台支持:

  1. Android - 2.2+ (支持)
  2. iOS - 4.3+ (支持)

CameraErrorCallback

摄像头操作失败回调

  1. void onError( error ) {
  2. // Handle camera error
  3. var code = error.code; // 错误编码
  4. var message = error.message; // 错误描写叙述信息
  5. }

參数:

  1. error: ( Exception ) 必选 摄像头操作的错误信息
  2. 可通过error.codeNumber类型)获取错误编码; 可通过error.messageString类型)获取错误描写叙述信息。

返回值:

void : 无

平台支持:

  1. Android - 2.2+ (支持)
  2. iOS - 4.3+ (支持)

html5中调用摄像头拍照的更多相关文章

  1. 【MediaKit】WPF项目中 调用摄像头拍照的开发包

    今天遇到一个 人事的项目,项目中需要调用摄像头给员工照相.如何解决这个问题呢? 介绍一个开发包给你,MediaKit.论坛里头的人都说好,但是黑兔觉得大家好才是真的好.你不妨试试~ 第一步:添加WPF ...

  2. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

  3. android ——调用摄像头拍照和相册

    先在布局文件中加入两个按钮和一个图片控件 <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  4. C# - VS2019调用AForge库实现调用摄像头拍照功能

    前言 作为一名资深Delphi7程序员,想要实现摄像头扫描一维码/二维码功能,发现所有免费的第三方库都没有简便的实现办法,通用的OpenCV或者ZXing库基本上只支持XE以上的版本,而且一维码的识别 ...

  5. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

  6. AForge调用摄像头拍照时设置分辨率

    简单记录下AForge2.2.5.0版本调用摄像头拍照时设置分辨率的方法. FilterInfo info = _videoDevices[0];//获取第一个摄像头 _cameraDevice = ...

  7. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式

    进入正题 1. PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template> <div> &l ...

  8. 使用html5绘图技术事项调用摄像头拍照;

    在mui框架中调用手机摄像头进行拍照可以直接使用原声的HTML5: 以下是HTML代码 <video id="video" width="640" hei ...

  9. Cordova - 使用Cordova开发iOS应用实战4(调用摄像头拍照,并编辑)

    使用Cordova可以很方便的通过js代码来使用设备摄像头拍照,只需把camera插件添加进来即可. 一,添加camera插件 首先我们要在“终端”中进入工程所在的目录,然后运行如下命令: 1 cor ...

随机推荐

  1. android 检測右滑的WebView

    今天产品出新花样非得要右滑....检測到右滑手势后事件不做处理放在Activity中做对应的处理即可了. import android.app.Activity; import android.con ...

  2. HDU 5654 xiaoxin and his watermelon candy 离线树状数组

    xiaoxin and his watermelon candy Problem Description During his six grade summer vacation, xiaoxin g ...

  3. Spark RDD概念学习系列之不同角度看RDD

    不多说,直接上干货!

  4. Python 接口类或抽象类 反射

    # 抽象类或者接口类,制定规范,统一方法名 # # 抽象类或者接口类,制定规范,统一方法名 from abc import ABCMeta,abstractmethod class Payrole(m ...

  5. xbox 相关

    https://live.xbox.com/zh-CN/avatareditor xboxgames://

  6. javascript动画函数封装(升级版)

    //把 任意对象 的 任意数值属性 改变为 任意的目标值 function animate(obj, json, fn) { clearInterval(obj.timer); obj.timer = ...

  7. 使用最新vue_cli+webpack搭建的模版

    使用最新vue_cli+webpack搭建的模版,包含了常用的插件,router和axiox与测试插件.项目的结构如下: 框架下载地址:https://share.weiyun.com/5Cl7EbU

  8. Android7.0打开sdacrd图片问题

    1.点击item,通过intent打开指定路径的图片. 2.测试6.0,5.0正常运行代码: File file=new File(item.address): Intent intent = new ...

  9. Android蓝牙2.0连接以及数据接收发送

    1.加入权限 <uses-feature android:name="android.hardware.bluetooth_le" android:required=&quo ...

  10. 反射另一个app中的View

    FrameLayout fl = (FrameLayout) findViewById(R.id.content); View v = null; try { Context context = cr ...