cameraQQ

来自于:AC模块工作室立即使用

概述

本模块封装了摄像头拍照的模块,调用 open 接口(相当于打开一个 Window),然后模块会弹出一个自带UI效果的拍照界面,在此界面,用户可切换前后摄像头,打开关闭闪关灯、确定拍照以及取消退出。本拍照模块有自动对焦功能,用户也可以手指点击某点对焦。

注意:本模块已经实现添加了长按录制小视频的功能。详情参考 open 接口及其回调函数。

截图如下:

open

打开固定 UI 的相机页面

open({params}, callback(ret))

params

save:

  • 类型:JSON 对象
  • 描述:(可选项)拍摄的图片保存信息
  • 内部字段:
{
     path: '',     // 字符串类型;生成图片,或者生成的视频保存路径,要求本地路径(fs://),如:fs://camerWeibo
     name: '',     //字符串类型;生成图片,或者生成的视频保存的文件名
     type: ''      //(可选项)字符串类型;保存视频的格式,取值范围如下:
                   //mpeg4(默认值):后缀名为mp4格式的视频文件
                   //3gpp:后缀名为3gp格式的视频文件

timer:

  • 类型:数字
  • 描述:(可选项)视频录制倒计时计时器,单位为秒(s),也可以在录制视频过程中单击停止视频录制
  • 默认值:无限大

album:

  • 类型:布尔
  • 描述:(可选项)拍照成功后是否将所拍图片存入系统相册
  • 默认:false

animation:

  • 类型:布尔
  • 描述:(可选项)打开拍照页面时是否带有动画效果
  • 默认:true

quality:

  • 类型:字符串
  • 描述:(可选项)所拍照片质量
  • 默认:medium
  • 取值范围:
    • high:超清
    • medium:高清
    • low:普通

style:

  • 类型:JSON对象类型
  • 描述:(可选项)页面样式设置(仅android有效)
  • 内部字段:
    {
      close:{                //(可选项)JSON对象类型;关闭按钮设置
          img:'',            //(可选项)字符串类型;关闭页面图片路径,支持widget,fs路径;
          marginTop:,   //(可选项) 数字类型;上边距  默认:10
          marginLeft:,   //(可选项) 数字类型;左边距   默认:10
          height:,           //(可选项) 数字类型;按钮高;默认30
          width:,                //(可选项)数字类型;按钮宽;默认30
          show:,            //(可选项) 布尔类型;是否显示此按钮;默认:true
      },
      flash:{                //(可选项)JSON对象类型;闪光灯按钮设置
          img:'',            //(可选项)字符串类型;闪光灯关闭图片路径,支持widget,fs路径;
          imgLight:'',   //(可选项) 字符串类型;闪光灯打开图片路径,支持widget,fs路径;
          marginTop:,   //(可选项) 数字类型;上边距 默认:10
          marginRight:,   //(可选项) 数字类型;右边距  默认:10
           height:,           //(可选项) 数字类型;按钮高;默认30
          width:,                //(可选项)数字类型;按钮宽;默认30
          show:,           //(可选项) 布尔类型;是否显示此按钮;默认:true
      },
      switch:{                //(可选项)JSON对象类型;切换摄像头按钮设置
          img:'',            //(可选项)字符串类型;切换摄像头图片路径,支持widget,fs路径;
          marginTop:,   //(可选项) 数字类型;上边距; 默认:10
          marginRight:,   //(可选项) 数字类型;右边距 默认:10
          height:,           //(可选项) 数字类型;按钮高;默认30
          width:,                //(可选项)数字类型;按钮宽;默认30
          show:,           //(可选项) 布尔类型;是否显示此按钮;默认:true
      },
        hintText:{
          text:'',      //(可选项) 字符串类型;提示内容;默认:‘点击拍照’
          textSize:,  //(可选项)数字类型;文字大小;默认:20
          textColor:'',  //(可选项)字符串类型;文字颜色,支持rgb,rgba 
          marginBottom:,    //(可选项)数字类型;距拍照按钮距离;默认:10
          show:,       //(可选项) 布尔类型;是否显示此文字;默认:true
      }
    }
    

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
    eventType: 'takePhoto', //字符串类型;交互事件类型,取值范围如下:
                            // takePhoto 拍照事件
                            // show 相机打开事件
                            // video视频录制完成事件
                            // close 相机关闭事件
    imagePath: '',          // 字符串类型;所拍图片的保存的绝对路径,仅当 eventType 为 takePhoto 时有效
    filePath: '',           //字符串类型;录像视频文件绝对路径,仅当 eventType 为 video 时有值
    albumPath: ''           //字符串类型;保存到相册后的录像视频文件在系统相册的路径,仅当 eventType 为                                                    video和takePhoto,且 album 为 true时有效
    duration: 1000,         //数字类型;录像视频文件的时长,单位:毫秒,仅当eventType 为 video 时有值。
                              duration字段返回的总时长小于等于0时说明录制的视频是无效文件,前端根据自己需求进行处理。
    size: 1024             //数字类型;录像视频文件的大小,单位:字节,仅当 eventType 为 video 时有值
}

示例代码

var cameraQQ = api.require('cameraQQ');
cameraQQ.open({
    save: {
       path: 'fs://cameraQQ'
       name: 'photo'
    },
    album: true ,
    quality: 'medium'
}, function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancel

取消/关闭拍照页面

cancel({params})

params

animation:

  • 类型:布尔
  • 描述:(可选项)关闭拍照页面时是否带有动画效果
  • 默认:true

示例代码

var cameraQQ = api.require('cameraQQ');
cameraQQ.cancel({
  animation: true
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本