Cordova結(jié)合Vue學(xué)習(xí)視頻錄取與上傳

一.序言

之前講過(guò)Cordova結(jié)合Vue學(xué)習(xí)Camera,并講述怎么通過(guò)Cordova來(lái)打包一個(gè)app,如果對(duì)Cordova和Vue不熟的同學(xué),可以自行查閱相關(guān)資料,然后本文接著講如何實(shí)習(xí)視頻錄取與文件上傳,之后希望大家自己去實(shí)現(xiàn)音頻錄取與播放、

下面是大家需要了解的一些相關(guān)文檔

cordova-plugin-media-capture----這個(gè)是Cordova媒體捕捉,主要使用其中capture.captureVideo(啟動(dòng)錄像機(jī)應(yīng)用程序)

cordova-plugin-file-transfer----這個(gè)是Cordova文件傳輸,主要使用其中的upload(文件傳輸上傳)

此文中將不再講述如何打包app,想了解可以查看Cordova結(jié)合Vue學(xué)習(xí)Camera

二.app項(xiàng)目中安裝plugin-media-capture與plugin-file-transfer插件api

首先進(jìn)入你的app項(xiàng)目然后調(diào)用cmd命令行工具,分別執(zhí)行命令

cordova plugin add cordova-plugin-media-capture

cordova plugin add cordova-plugin-file-transfer


三.Vue中使用插件

以下代碼則是調(diào)用攝像機(jī)進(jìn)行錄制,當(dāng)成功時(shí)則會(huì)調(diào)用onSuccess方法并返回文件對(duì)象

//開始錄制視頻
videoCapture: function() {
    var options = {
      imit: 1,
      duration: 10
    };

    navigator.device.capture.captureVideo(this.onSuccess, this.onError, options);
},
onSuccess: function(mediaFiles) {
    var i, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) {
        this.path = mediaFiles[i].fullPath;
        // do something interesting with the file
    }
    alert(this.path);
},

以上都能成功時(shí)我們就可以上傳文件了,以下代碼是上傳視頻文件。

uploadHandle: function() {
    //這里這段后期測(cè)試發(fā)現(xiàn)沒(méi)有用
    if(device.platform == "iOS") {
        var  src = cordova.file.tempDirectory + +Date.now()+ ".m4a";
    } else if(device.platform == "Android") {
        var  src = cordova.file.externalRootDirectory + +Date.now()+ ".m4a";
    }
    
    //判斷是否有文件被上傳
    if (!this.path) {
        Toast({
            message: '文件不存在',
            position: 'bottom',
            duration: 5000
        });
        return false;
    }
    
    var fileURL =  this.path;
    //上傳成功的回調(diào)方法
    var win = function(r) {
        console.info(r);
        console.log("Code = " + r.responseCode);
        console.log("Response = " + r.response);
        console.log("Sent = " + r.bytesSent);
    }
    //上傳失敗的回調(diào)方法
    var fail = function(error) {
        console.info(error);
        alert("An error has occurred: Code = " + error.code);
        console.log("upload error source " + error.source);
        console.log("upload error target " + error.target);
    }
    //上傳參數(shù)  
    var options = new FileUploadOptions();
    options.fileKey = 'file';
    options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
    options.mimeType = "text/plain";
    var params = {
        value1: 'test',
        value2: 'param'
    };
    options.params = params;
    //實(shí)例化上傳類  
    var ft = new FileTransfer();
    console.info(ft);
    
    //綁定上傳進(jìn)度函數(shù)
    ft.onprogress = this.selectload;
    //開始上傳
    ft.upload(fileURL, encodeURI('http://192.168.1.23:8087'), win, fail,options);
},
//綁定顯示上傳進(jìn)度 
selectload:function(e){
    if (e.lengthComputable) {
        // this.sheetVisible=true;
        var num=(e.loaded / e.total)*100;
        this.load_val=num.toFixed(2);
        console.log(this.load_val);
        console.log('當(dāng)前進(jìn)度:' + e.loaded / e.total);
    }
}

四.最后會(huì)出現(xiàn)的問(wèn)題與bug

  1. 第一個(gè)就是文件獲取但是并沒(méi)有上傳成功,首先你要注意服務(wù)端對(duì)上傳文件的大小限制
  2. 第二個(gè)就是上傳文件一定要授權(quán)手機(jī)存儲(chǔ)權(quán)限,這一點(diǎn)非常重要,沒(méi)有存儲(chǔ)權(quán)限就等于拿不到剛才錄制的文件,自然也就上傳不了,可以再安裝apk的時(shí)候讓用戶勾選存儲(chǔ)權(quán)限,

這就是我在學(xué)習(xí)過(guò)程中遇到的問(wèn)題和心得,還是那句話遇到問(wèn)題多查詢找資料。如果有什么疑問(wèn)或者不清楚的可以加QQ:948585377聯(lián)系我,我可以將我的demo發(fā)送給你,然后我們可以共同探討學(xué)習(xí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、獲取當(dāng)前應(yīng)用的版本號(hào) cordova plugin add cordova-plugin-app-versio...
    XuTong閱讀 2,471評(píng)論 2 11
  • Cordova主要是通過(guò)插件來(lái)調(diào)用原生API的,插件名稱根據(jù)項(xiàng)目需要自行查找,常用的幾個(gè)會(huì)在下面列出來(lái)。寡人也會(huì)持...
    世外大帝閱讀 1,102評(píng)論 0 4
  • 目錄 UI組件 開發(fā)框架 實(shí)用庫(kù) 服務(wù)端 輔助工具 應(yīng)用實(shí)例 Demo示例 UI組件 element★13489 ...
    余生社會(huì)閱讀 20,487評(píng)論 7 233
  • 每個(gè)人,都是自己那片小領(lǐng)土的國(guó)王。國(guó)王的特色就是樂(lè)意聽聽別人的意見—當(dāng)別人的意見剛好和國(guó)王自己的意見相同時(shí)。 當(dāng)你...
    喜歡紫色的女子閱讀 210評(píng)論 0 1
  • 文/于格 01 寫作,是為了什么? 對(duì)這個(gè)問(wèn)題,我的心底有兩個(gè)聲音。 一個(gè)純粹的聲音說(shuō),寫作是自我的一種表達(dá),是發(fā)...
    于格YUGE閱讀 664評(píng)論 14 17

友情鏈接更多精彩內(nèi)容