【发布时间】: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