如何将base64音频数据解码为wav格式

Posted

技术标签:

【中文标题】如何将base64音频数据解码为wav格式【英文标题】:how to decode base64 audio data to wav format 【发布时间】:2014-12-11 12:10:48 【问题描述】:

我正在浏览器中录制音频,并希望使用 ajax 调用将录音保存在服务器上。

我在 html5 浏览器中使用 recorderjs 库进行录制,它也可以正常工作。

所以我想做的只是解码该 blob/base64 数据,以便我可以将该数据发送到服务器进行保存。 这是我的代码。

我已将 blob 数据转换为 base64

    var reader = new FileReader();
                    reader.onload = function() 

                        var dataUrl = reader.result;
                        var base64 = dataUrl.split(',')[1];
/*base64 this needs to be decoded*/

                    ;
                    reader.readAsDataURL(blob);
                );

【问题讨论】:

"base64" 不是音频格式。只需在服务器上执行base64_decode 并将其保存为适当扩展名的文件... 其实我没有服务器端访问权限。我只能通过 ajax 发送数据和文件名。 这很愚蠢。在这种情况下,您希望 window.atob(base64) 在客户端解码。我想揍那个认为atob 是“解码base64 数据”的好名字的白痴…… 我已经尝试过使用 window.atob(base64) 但不适合我。 我不明白,你有Base64,但你需要将它转换成东西发送到服务器以便保存,但你没有访问服务器的权限?服务器期望得到什么? 【参考方案1】:

我没有使用 base64 字符串,而是使用了代码中的“dataUrl”,并使用 Ajax 将此“dataUrl”数据存储到服务器。

所以每当我想播放我录制的音频时,我只需使用 ajax 获取数据,响应数据就会像下面的代码一样添加到音频源中。

var audio_obj = new Audio();
audio_obj = data; //ajax response data
audio_obj.play();

【讨论】:

你知道如何将 Base64 编码数据添加到音频中吗?

以上是关于如何将base64音频数据解码为wav格式的主要内容,如果未能解决你的问题,请参考以下文章

解码音频/音频播放 (AS3)

如何使用JS将音频文件如何转换成base64格式的

如何将音频文件转为base64 编码

如何将音频文件转为base64 编码

如何将wav格式声音文件转换为文本文件

如何将base64编码转变为图片