gpt4 book ai didi

javascript - 从 Cordova Capture 获取音频数据的 base64

转载 作者:可可西里 更新时间:2023-11-01 05:20:39 25 4
gpt4 key购买 nike

我正在使用 ngCordova Capture 通过录制音频并将 base64 发送到某处(通过 REST)来编写此代码。我可以让 Capture Audio 工作,但是一旦它返回 audioURI,我就无法从文件系统获取 base64 数据。我的代码如下:

$cordovaCapture.captureAudio(options).then(function(audioURI) {
$scope.post.tracId = $scope.tracId;
$scope.post.type = 'audio';
console.log('audioURI:');
console.log(audioURI);
var path = audioURI[0].localURL;
console.log('path:');
console.log(path);

window.resolveLocalFileSystemURL(path, function(fileObj) {
var reader = new FileReader();
console.log('fileObj:');
console.log(fileObj);

reader.onloadend = function (event) {
console.log('reader.result:');
console.log(reader.result);
console.log('event.result:');
console.log(event.result);
}
reader.onload = function(event2) {
console.log('event2.result:');
console.log(event2.target.result);
};
reader.readAsDataURL(fileObj);
console.log(fileObj.filesystem.root.nativeURL + ' ' + fileObj.name);
$cordovaFile.readAsDataURL(fileObj.filesystem.root.nativeURL, fileObj.name)
.then(function (success) {
console.log('success:');
console.log(success);
}, function (error) {
// error
});
});

这是控制台日志中的输出:

enter image description here

那么如何从 .wav 文件中获取 base64 数据呢?

我一直在阅读这些链接:

PhoneGap FileReader/readAsDataURL Not Triggering Callbacks

https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL

http://jsfiddle.net/eliseosoto/JHQnk/

http://community.phonegap.com/nitobi/topics/filereader_onload_not_working_with_phonegap_build_2_5_0

最佳答案

有同样的问题,我使用 Cordova Capture 和 Cordova File 插件解决了这个问题。

navigator.device.capture.captureAudio(function (audioFiles) {
var audioFile = audioFiles[0],
fileReader = new FileReader(),
file;
fileReader.onload = function (readerEvt) {
var base64 = readerEvt.target.result;
};
//fileReader.reasAsDataURL(audioFile); //This will result in your problem.
file = new window.File(audioFile.name, audioFile.localURL,
audioFile.type, audioFile.lastModifiedDate, audioFile.size);
fileReader.readAsDataURL(file); //This will result in the solution.
});

关于javascript - 从 Cordova Capture 获取音频数据的 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com