cordova调用相机

该篇主要讲述cordova如何调用相机。


1、Cordova调用相机的api
Cordova框架提供了两个用于访问设备相机的API,一个是Camera API,它使用开发者能直接访问本地相机的API,另一个是Media Capture API
两者区别:Camera API只用相机获取图像,而Media Capture API不仅能获取图像,还可以录视频或者录音


2、安装插件

cordova plugin add cordova-plugin-camera

3、调用方法

var cameraOptions= {
    quality : 75,
    destinationType : Camera.DestinationType.DATA_URL,
    sourceType : Camera.PictureSourceType.CAMERA,
    allowEdit : true,
    encodingType : Camera.EncodingType.JPEG,
    targetWdith : 100,
    targetHeight : 100,
    popoverOptions : CameraPopoverOptions,
    saveToPhotoAlbum : false
};

navigator.camera.getPicture(onCameraSuccess, onCameraError, cameraOptions);

function onCameraSuccess(imageURI){   
   $('#img_pic').attr("src","data:image/jpeg;base64," + imageURI);
}

function onCameraError(message) {
  alert('Failed because: ' + message);
}

4、官方参数列表

属性描述
allowEdit布尔值,照片在返回Cordova应用之前用户是否可以编辑,但并不是所有移动平台都支持。
cameraDirection数值型,规定使用前面或后面的相机。navigator.camera.Direction.FRONTnavigator.camera.Direction.BACK分别指前面和后面。
correctOrientation布尔值,告诉API在拍照时旋转图像来调整设备方向。
destinationType布尔值,照片在返回Cordova应用之前用户是否可以编辑,但并不是所有移动平台都支持。
cameraDirection数值型,规定API怎样返回照片。Camera.DestinationType.FILE_URI是默认选项前边提到过,Camera.DestinationType.DATA_URL,返回用base-64编码的图像,Camera.DestinationType.NATIVE_URI, 返回图像的本地的URI。注意使用DATA_URL,因为js不处理用字符编码的图像,可能会使用js应用崩溃。
encodingType数值型,指明图像输出格式。Camera.EncodingType.JPEG让API返回JPEG图像。
mediaType数值型,当SoruceType设置为PHOTOLIBRARYSAVEDPHOTOALBUM,规定了用户可选择什么类型的文件。使用Camera.MediaType.PICTURE时只允许选择图像,Camera.MediaType.VIDEO允许选择视频文件,Camera.MediaType.ALLMEDIA允许选择任何支持的媒体文件。选择VIDEO时,API只返回文件的URI;如果是图像会返回信息,它的格式请参考destinationType
quality数值型,用从0到100%的百分比来控制图像的质量,100表示不经过压缩。
saveToPhotoAlbum布尔值,指示API在拍照后把图像保存到设备照片相册中。
sourceType数值型,指明图像来源。可能值有Camera.PictureSourceType.CAMERA(默认值),或者Camera.PictureSourceType.PHOTOLIBRARYCamera.PictureSourceType.SAVEDPHOTOALBUM。选项的行为会根据应用运行的平台不同而不同,像有些平台没有photo librariesphoto albums
targetHeight数值型,用来设定获得的图像的高度。
targetWidth数值型,用来设定获得的图像的宽。

5、注意
用户在返回给Cordova应用的是一张图像,但可能拍了不止一张。Cordova有一个cleanup方法用来清理这种图像。调用这个方法并且传入成功和失败的回调函数名作为参数,如下:

navigator.camera.cleanup(onCameraCleanupSuccess, onCameraCleanupError);

调用手机相机,除了用cordova调取,我们还可以用HTML5的api.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙云敏同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值