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標籤
}
}
});
});
}