cordova调用相机

来源:互联网 发布:一搜同志个人网络 编辑:程序博客网 时间:2024/06/03 23:15

该篇主要讲述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.

原创粉丝点击