plus.camera.getCamera()调用相机、摄像头
<div style="line-height: 1.5rem;" class="image-item space" οnclick="getImage()">拍照 </div> <div style="line-height: 1.5rem;" class="image-item space" οnclick="getVideo()">录像 </div> <div style="line-height: 1.5rem;" class="image-item space" οnclick="getPhoto()">从相册选择 </div>
1、调用相机
(1)、/调用手机摄像头并拍照 function getImage() { var cmr = plus.camera.getCamera(); cmr.captureImage(function(p) { plus.io.resolveLocalFileSystemURL(p, function(entry) { compressImage(entry.toLocalURL(),entry.name); }, function(e) { plus.nativeUI.toast("读取拍照文件错误:" + e.message); }); }, function(e) { }, { filter: 'image' }); } (2)、//图片压缩 function compressImage(url,filename){ var name="_doc/upload/"+filename; plus.zip.compressImage({ src:url,//src: (String 类型 )压缩转换原始图片的路径 dst:name,//压缩转换目标图片的路径 quality:90,//quality: (Number 类型 )压缩图片的质量.取值范围为1-100 overwrite:true,//overwrite: (Boolean 类型 )覆盖生成新文件 width:'250', height:'320' }, function(zip) { //页面显示图片 showPics(zip.target,name); },function(error) { plus.nativeUI.toast("压缩图片失败,请稍候再试"); }); } (3)、//图片展示 function showPics(url,name){ //根据路径读取到文件 plus.io.resolveLocalFileSystemURL(url,function(entry){ entry.file( function(file){ var fileReader = new plus.io.FileReader(); fileReader.readAsDataURL(file); fileReader.onloadend = function(e) { var picUrl = e.target.result.toString(); var img1 = $("#img1").attr("src");//获取页面存放图片标签的值 if(img1 =="" || img1 == undefined){ $("#img1").attr("src",picUrl);//将图片base64编码赋值给img标签 } } }); }); }
2、调用摄像头录像
(1)、调用摄像头录像 function getVideo(){ var cmr = plus.camera.getCamera(); cmr.startVideoCapture(function(p){ plus.io.resolveLocalFileSystemURL(p, function(entry){ entry.file( function(file){ var fileReader = new plus.io.FileReader(); showVideo(file);//视频展示 } ); }, function(e){ alert('读取录像文件错误:'+e.message); } ); }, function(e){ }, {filename:'_doc/camera/',index:1}); } (2)、/视频展示 function showVideo(file){ $("#video0").remove();//每次展示视频前先删除上一次生成的video var fileSize =(file.size) / (1024*1024);//转换成M fileSize = fileSize.toFixed(1);//保留小数点后一位 if(fileSize > 30){ alert('上传视频不能大于30M'); }else{ var vde = '<video style="height:80px; width:100px; object-fit:fill" id="video0" autoplay="autoplay" x5-playsinline="" playsinline="" webkit-playsinline="" loop="loop"></video>'; $(".photo").append(vde); var reader = new plus.io.FileReader(); reader.readAsDataURL(file);//调用自带方法进行转换 reader.onload = function(e) { $("#video0").attr("src", e.target.result);//将视频base64编码放入标签 }; } }
3、调用系统文件夹(相册)
(1)、//相册选择图片 function getPhoto(){ plus.gallery.pick(function(path){ var name = path.substring(path.lastIndexOf("/")+1); compressPhoto(path,name);//图片压缩 }, function(e){ }, {filter:'image'}); } (2)、//图片压缩 function compressPhoto(url,filename){ var name="_doc/upload/"+filename; plus.zip.compressImage({ src:url,//src: (String 类型 )压缩转换原始图片的路径 dst:name,//压缩转换目标图片的路径 quality:90,//quality: (Number 类型 )压缩图片的质量.取值范围为1-100 overwrite:true,//overwrite: (Boolean 类型 )覆盖生成新文件 width:'250', height:'320' }, function(zip) { //页面显示图片 showPhoto(zip.target,name); },function(error) { plus.nativeUI.toast("压缩图片失败,请稍候再试"); }); } (3)、//图片展示 function showPics(url,name){ //根据路径读取到文件 plus.io.resolveLocalFileSystemURL(url,function(entry){ entry.file( function(file){ var fileReader = new plus.io.FileReader(); fileReader.readAsDataURL(file); fileReader.onloadend = function(e) { var picUrl = e.target.result.toString(); var img1 = $("#img1").attr("src");//获取页面存放图片标签的值 if(img1 =="" || img1 == undefined){ $("#img1").attr("src",picUrl);//将图片base64编码赋值给img标签 } } }); }); }