我正在使用录音机.js将用户的音频文件上传到我们的服务器上。这在chrome和Firefox中都有效。但是我们的音频文件大约是 1 分钟,对于 1 分钟的音频文件,它会生成大约 8 MB 的文件,该文件太大而无法上传到服务器上。
我试图更新记录器工人.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 */
view.setUint16(22, 1, true);
通过上面的代码,我的文件仅以一半的大小创建,即 4 MB。 当我在 Chrome 中播放此文件时,它正在工作,但是当我在 Firefox 和 Windows 媒体播放器中尝试此文件时。这是行不通的。.在Firefox中,它的给出无法加载,而在Windows Media Player中给出"Windows Media Player在播放文件时遇到问题"消息。
我创建了 2 个样本:
http://216.245.194.124/recorduploadsample.com/
http://216.245.194.124/recorduploadsample2.com/
第一个样本将在chrome和Firefox中工作,录制任何内容后,我们可以播放录制的声音。(这是大文件大小的原始代码)
第二个示例仅在 chrome 中工作,而不是在火狐中工作(更新了上面的代码以减小文件大小)
我需要通过更改音频文件的分辨率来减小文件大小,这应该在 chrome、Firefox 中都有效......任何人都可以为此提出解决方案吗?
提前致谢
wav 的问题在于文件是未压缩的,因此它们占用了磁盘上的大量空间,仅 1 分钟的录制可能需要多达 10 兆字节。
解决方案是什么?好吧,让我们将wav文件转换为mp3。简单地保存 wav 文件然后转换它是行不通的。我们需要在浏览器中实时将录音转换为mp3。
https://nusofthq.com/blog/recording-mp3-using-only-html5-and-javascript-recordmp3-js/