【问题标题】:Mp3 file to Base64 encode string conversion in android phonegapandroid phonegap 中的 Mp3 文件到 Base64 编码字符串转换
【发布时间】:2014-11-18 09:59:36
【问题描述】:

我有一个将 mp3 文件编码为 base64 字符串的功能。但是当文件执行时会产生一些错误。我的功能如下:

函数 recordAudioToBase64() {

console.log('encodeing fun reached');
var file = 'jivebirdrecord.mp3';
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFile, fail);

}

function gotFile(fileSystem) {

fileSystem.root.getFile("jivebirdrecord.mp3", null, gotFileEntry, fail);

}

function gotFileEntry(fileEntry) {

fileEntry.file(gotFile, fail);

}

函数得到文件(文件){

readDataUrl(file);

}

函数 readDataUrl(文件) {

 var reader = new FileReader();
 reader.onloadend = function(evt) {
    base = evt.target.result;
  };
  reader.readAsBinaryString(file);

}

函数失败() {

 console.log('failed......');

}

我有以下错误:

**processMessage 失败:错误:TypeError:无法在“FileReader”上执行“readAsDataURL”:参数不是 Blob。

processMessage 失败:堆栈:TypeError:无法在“FileReader”上执行“readAsDataURL”:参数不是 Blob。

at FileReader.readAsDataURL (file:///android_asset/www/plugins/org.apache.cordova.file/www/FileReader.js:201:33)

at readDataUrl (file:///android_asset/www/js/script.js:293:14)

at gotFile (file:///android_asset/www/js/script.js:283:4)

at file:///android_asset/www/plugins/org.apache.cordova.file/www/requestFileSystem.js:52:25
at success (file:///android_asset/www/plugins/org.apache.cordova.file/www/fileSystems-roots.js:40:13)

at Object.cordova.callbackFromNative (file:///android_asset/www/cordova.js:292:54)

at processMessage (file:///android_asset/www/cordova.js:1039:21)

at Function.androidExec.processMessages (file:///android_asset/www/cordova.js:1076:13)

at pollOnce (file:///android_asset/www/cordova.js:944:17)

at pollOnceFromOnlineEvent (file:///android_asset/www/cordova.js:939:5)

processMessage failed: Message: S01 File810616738 

 [{"fullPath":"\/","filesystemName":"temporary","isDirectory":true,"nativeURL":"file:\/\/\/storage\/emulated\/0\/Android\/data\/com.phonegap.helloworld\/cache\/","filesystem":0,"isFile":false,"name":""},

{"fullPath":"/","filesystemName":"persistent","isDirectory":true,"nativeURL":"file:///storage/emulated/0/","filesystem":1, "isFile":false,"name":""},

{"fullPath":"/","filesystemName":"content","isDirectory":true,"nativeURL":"cdvfile://localhost/content/","filesystem":1,"isFile" :false,"name":""},

{"fullPath":"/","filesystemName":"files","isDirectory":true,"nativeURL":"file:///data/data/com.phonegap.helloworld/files/", "文件系统":1,"isFile":false,"名称":""},

{"fullPath":"/","filesystemName":"files-external","isDirectory":true,"nativeURL":"file:///storage/emulated/0/Android/data/com. phonegap.helloworld/files/","filesystem":1,"isFile":false,"name":""},

{"fullPath":"/","filesystemName":"documents","isDirectory":true,"nativeURL":"file:///data/data/com.phonegap.helloworld/files/Documents/ ","filesystem":1,"isFile":false,"name":""},{"fullPath":"/","filesystemName":"sdcard","isDirectory":true,"nativeURL":" file:///storage/emulated/0/","filesystem":1,"isFile":false,"name":""},

{"fullPath":"/","filesystemName":"cache","isDirectory":true,"nativeURL":"file:///data/data/com.phonegap.helloworld/cache/", "文件系统":1,"isFile":false,"名称":""},

{"fullPath":"/","filesystemName":"cache-external","isDirectory":true,"nativeURL":"file:///storage/emulated/0/Android/data/com. phonegap.helloworld/cache/","filesystem":1,"isFile":false,"name":""},

{"fullPath":"/","filesystemName":"root","isDirectory":true,"nativeURL":"file:///","filesystem":1,"isFile":false, "名称":""}]**

请帮助我找到使用 phonegap 和 jquery mobile 将 mp3 文件转换为 base64 字符串的解决方案。 谢谢

【问题讨论】:

    标签: android cordova filereader


    【解决方案1】:

    这有点晚了,但对其他人来说这可能会有所帮助。

    directoryReader.readEntries(function(entries){
                                    for (var i=0; i<entries.length; i++) {
                                        var reader = new FileReader();
    
                                        var entry = entries[i]; 
                                        entry.file(function(file){
                                                reader.readAsDataURL(file);
                                                reader.onload = doOnload(entry.name);
    
                                        });
    
                                    }
                                });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 2013-03-18
      • 2021-01-23
      相关资源
      最近更新 更多