html5 record 修改采样率导致声音无法播放解决方案

在项目中使用HTML5录音功能时,需要将采样率从44100调整为8000。然而,修改采样率会导致录音无法正常播放,出现噪音。通过查阅StackOverflow和相关博客文章,找到了问题关键在于`downsampleBuffer`函数中`sampleRateRatio`计算不精确。修正为使用`Math.round()`确保其为整数,同时调整WAV导出部分代码,成功解决了声音失真的问题。
摘要由CSDN通过智能技术生成

最近项目中用到web录音,但是录音的采样率需要设置为8000,而不是默认的44100.但是修改samplerate后,发现录音不能正常播放,播放出来的是噪音。在stackOverFlow上搜到解决方案如下:

function downsampleBuffer(buffer, rate) {
   
    if (rate == sampleRate) {
        return buffer;
    }
    if (rate > sampleRate) {
        throw "downsampling rate show be smaller than original sample rate";
    }
    var sampleRateRatio = sampleRate / rate;
    var newLength = Math.round(buffer.length / sampleRateRatio);
    var result = new Float32Array(newLength);
    var offsetResult = 0;
    var offsetBuffer = 0;
    while (offsetResult < result.length) {
        var nextOffsetBuffer = Math.round((offsetResult +
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值