微信小程序拍照和攝像功能實現(xiàn)方法示例
本文實例講述了微信小程序拍照和攝像功能實現(xiàn)方法。分享給大家供大家參考,具體如下:
拍照
原先的想法是使用微信的camera組件來實現(xiàn),并且模擬發(fā)朋友圈的樣子來進行相機的設置,其實就是將camera組件的大小設置成根屏幕一樣大,并在上面使用一個cover-image組件來給用戶進行點擊,可是實際上的情況是第一,cover-image組件有時候會消失,第二,整個流程實現(xiàn)起來很僵硬,頁面跳轉(zhuǎn)也是卡的要死,后來無意間發(fā)現(xiàn)了另一個API:wx.chooseImage,這個API會自己去調(diào)用相機和相冊,之后的工作完全交給底層去實現(xiàn),簡直是簡單到?jīng)]朋友:
// 拍照功能
getLocalImage:function(){
var that=this;
wx.chooseImage({
count:1,
success:function(res){
// 這里無論用戶是從相冊選擇還是直接用相機拍攝,拍攝完成后的圖片臨時路徑都會傳遞進來
app.startOperating("保存中")
var filePath=res.tempFilePaths[0];
var session_key=wx.getStorageSync('session_key');
// 這里順道展示一下如何將上傳上來的文件返回給后端,就是調(diào)用wx.uploadFile函數(shù)
wx.uploadFile({
url: app.globalData.url+'/home/upload/uploadFile/session_key/'+session_key,
filePath: filePath,
name: 'file',
success:function(res){
app.stopOperating();
// 下面的處理其實是跟我自己的業(yè)務邏輯有關(guān)
var data=JSON.parse(res.data);
if(parseInt(data.status)===1){
app.showSuccess('文件保存成功');
}else{
app.showError("文件保存失敗");
}
}
})
},
fail:function(error){
console.error("調(diào)用本地相冊文件時出錯")
console.warn(error)
},
complete:function(){
}
})
},
其中封裝在app.js中的函數(shù)可以看我這篇文章:微信小程序一些簡易小函數(shù)總結(jié)。
攝影
其實跟上面的原理是一樣的,對應的API就是wx.chooseVideo,其中可以設置拍攝時間,用戶拍攝結(jié)束以及用戶拍攝時間超時等,都會調(diào)用success的回調(diào)函數(shù),所以又是可以安心處理接下來的業(yè)務流程,而不用需要調(diào)用camera組件。
// 攝像功能
getLocalVideo:function(){
var that=this;
var session_key=wx.getStorageSync('session_key');
wx.chooseVideo({
maxDuration:10,
success:function(res1){
app.startOperating("上傳中")
// 這個就是最終拍攝視頻的臨時路徑了
var tempFilePath=res1.tempFilePath;
},
fail:function(){
console.error("獲取本地視頻時出錯");
}
})
},
實現(xiàn)起來也是很簡單,但是有一個問題就是沒有辦法像調(diào)用camera組件一樣獲取視頻的縮略圖,這是現(xiàn)在唯一的缺陷。但是總體來說,比起調(diào)用camera組件,這樣實現(xiàn)起來的確簡單了很多。
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關(guān)文章
window.print()局部打印三種方式(小結(jié))
本文主要介紹了window.print()局部打印三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06

