我正在使用recorder.js在我们的服务器上传用户的音频文件。这是在chrome和firefox都工作。但我们的音频文件将是大约1分钟和1分钟音频文件,它产生大约8 MB的文件太大,无法在服务器上传..
我试图更新recorderWorker.js文件:
将交错方法更新为
function interleave(inputL, inputR)
{
var result = new Float32Array(inputL.length);
for (var i = 0; i < inputL.length; ++i)
result[i] = 0.5 * (inputL[i] + inputR[i]);
return result;
}
并将channel-count设置为
/* channel count */
view.setUint16(22, 1, true);
通过以上代码,我的文件只有一半大小,即4 MB。当我在chrome中播放这个文件时它正在工作,但是当我在firefox和windows media player中尝试这个文件时...这不起作用..在firefox中它的播放无法加载并且在Windows媒体播放器中“Windows Media Player遇到问题”在播放文件时。“消息。
我创建了两个样本:
http://216.245.194.124/recorduploadsample.com/
http://216.245.194.124/recorduploadsample2.com/
第一个示例将同时适用于chrome和firefox,并且在记录任何内容后我们可以播放录制的声音..(这是大文件大小的原始代码)
第二个示例仅适用于chrome而不是firefox(上面更改了代码以减小文件大小)
我需要通过更改音频文件的分辨率来减小文件大小,这应该适用于chrome,firefox两者......有人可以为此建议解决方案吗?
先谢谢
答案 0 :(得分:1)
wav的问题是文件是非压缩的,因此它们占用磁盘上的大量空间,只需1分钟的录制就可以占用10兆字节。
解决这个问题?好吧,让我们将wav文件转换为mp3。只需保存wav文件然后转换它就行不通。我们需要在浏览器中实时将录音转换为mp3。
https://nusofthq.com/blog/recording-mp3-using-only-html5-and-javascript-recordmp3-js/