plus.camera.getCamera()调用相机、摄像头

<div style="line-height: 1.5rem;" class="image-item space" onclick="getImage()">拍照 </div>
<div style="line-height: 1.5rem;" class="image-item space" onclick="getVideo()">录像 </div>
<div style="line-height: 1.5rem;" class="image-item space" onclick="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标签
                    }  
               }  
           });  
      });   
   }

猜你喜欢

转载自blog.csdn.net/qq_39150358/article/details/83544419