我正在构建一个记录音频的Phonegap应用程序,然后获取音频文件并将其转换为base64。然后,我将该base64数据url存储在变量中,然后使用该变量在警告框中显示base64数据URL。这是我到目前为止的代码。它在Android上完美运行。在Android上,我收到一条警告消息,上面写着"数据:audio / x-wav; base64,AAAAGGZ0ex"等等。显然字符串比这要大很多,但我在Android上获得了整个base64数据网址。在下面使用相同代码的ios上,我收到一条警告消息,上面只是" data:audio / wav; base64,"没有数据网址。我只是得到一条警告信息:" data:audio / wav; base64,"究竟。这是我的代码如下。我正在使用Phonegap File API
function gotFS(fileSystem) {
fileSystem.root.getFile("myaudio.wav", {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file){
readDataUrl(file);
}
function readDataUrl(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("read success");
console.log(evt.target.result);
var thed = evt.target.result;
alert(thed);
};
reader.readAsDataURL(file);
}
function fail(evt) {
console.log(evt.target.error.code);
}
function recordAudio() {
var src = "myaudio.wav";
var mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
var recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
setAudioPosition(recTime + " sec");
if (recTime >= 7) {
clearInterval(recInterval);
mediaRec.stopRecord();
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function fail(){});
}
}, 1000);
}