Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将音频文件转换为base64_Javascript_Html_Cordova_Base64_Local Storage - Fatal编程技术网

Javascript 将音频文件转换为base64

Javascript 将音频文件转换为base64,javascript,html,cordova,base64,local-storage,Javascript,Html,Cordova,Base64,Local Storage,我正在为一个朋友构建一个Phonegap应用程序,我打算让人们在手机上录制音频,将其保存到浏览器的本地存储,然后稍后上传 好了,你不能在本地存储中存储二进制文件,所以我试图将这个文件转换成base64,但到目前为止我还不能让它按我想要的方式工作 var file = document.getElementById('audioinput').files[0]; var url = window.URL.createObjectURL(file); encodedAudio = windows.b

我正在为一个朋友构建一个Phonegap应用程序,我打算让人们在手机上录制音频,将其保存到浏览器的本地存储,然后稍后上传

好了,你不能在本地存储中存储二进制文件,所以我试图将这个文件转换成base64,但到目前为止我还不能让它按我想要的方式工作

var file = document.getElementById('audioinput').files[0];
var url = window.URL.createObjectURL(file);
encodedAudio = windows.btoa(url);

所有这些都是对指向临时存储文件的blob的链接进行编码。如何对实际音频文件进行编码?

如果我是对的,本地存储大小通常限制在5MB左右。我建议使用Cordova文件API


我不确定你的建筑是什么类型的应用程序,但如果你使用5MB的本地存储和128kb/s的记录,那就需要40秒。

我可以想象数据的大小。。。本地存储不佳…是否将其保存到浏览器本地存储?:O伙计,请说出手机的本地存储。甚至像soundcloud这样的音频网站也使用手机的本地存储来录制音频,命名吧!然后从那里上传。您可能希望阅读手机的API来创建音频,然后通过选择它从那里上传。@VisioN true:)大部分都是短片段,所以应该可以(希望如此:))考虑一下之前是如何解决的: