2016-01-21 81 views
1

我使用離子與cordova-plugin-media錄製音頻,我想上傳音頻錄製到服務器使用angular-file-upload但我不知道如何從媒體中獲取文件。我只是試試這個:離子 - 從音頻獲取文件與科爾多瓦插件媒體記錄

控制器:

$scope.itemOnLongPress = function (id) {; 
      myMedia = new Media("./sound/recorded.wav"); 
      myMedia.startRecord(); 
} 

$scope.itemOnTouchEnd = function (id) { 
    myMedia.stopRecord(); 
    myMedia.play(); 
    window.resolveLocalFileSystemURI(myMedia.src, 
     // success callback; generates the FileEntry object needed to convert to Base64 string 
     function (fileEntry) { 
      // convert to Base64 string 
      function win(file) { 
       var reader = new FileReader(); 
       reader.onloadend = function (evt) { 
        var obj = evt.target.result; // this is your Base64 string 
        alert(obj); 
       }; 
       reader.readAsDataURL(file); 
      }; 
      var fail = function (evt) {}; 
      fileEntry.file(win, fail); 
     }, 
     // error callback 
     function() { 
      alert('fail'); 
     } 
    ); 

所有時間我收到「失敗」,從事件,我嘗試使用一些前綴,如:「/sdcard/recorded.wav","file:/// sound/recorded.wav「,」documents://recorded.wav「,但每次出現同樣的錯誤...

任何人都知道我可以得到這個文件嗎?

回答

5

最後我用科爾多瓦插件(科爾多瓦文件傳輸),爲做到這一點,並獲得文件我使用:

window.requestFileSystem(LocalFileSystem.TEMPORARY,0,function(filesystem) { 
    var file = filesystem.root.toUrl; 
    /*and need remove file:// from path so..*/ 
    file = file.slice(7) 
} 

我希望這可以幫助別人,我浪費了很多時間,這個上海*噸。

相關問題