<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标签
}
}
});
});
}