JS怎么获取音频采样率

发布于 2022-09-11 18:59:50 字数 490 浏览 20 评论 0

  var audioCtx = new AudioContext();
  function getData() {
      request = new XMLHttpRequest();
      request.open('GET', '4.wav', true);
      request.responseType = 'arraybuffer';
      request.onload = function() {
        var audioData = request.response;
        audioCtx.decodeAudioData(audioData, function(buffer) {
          console.log(buffer)
        });
      }
      request.send();
  }
  getData();

通过以上方法获得到的sampleRate每次都是48000. 怎么获取音频的采样率呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自我难过 2022-09-18 18:59:50

因为我主要是判断wav格式的录音,所以可以通过录音的字节内容来判断:

var audioCtx = new AudioContext();
      function getData() {
          request = new XMLHttpRequest();
          request.open('GET', '3.wav', true);
          request.responseType = 'arraybuffer';
          request.onload = function() {
            let audioData = request.response;
                intArr = new Int8Array(audioData),
                channelArr = intArr.slice(22,24),
                codeArr = intArr.slice(20,22),
                sampleRateArr = intArr.slice(24,28),
                bitPerSampleArr = intArr.slice(34,36);

            let type = String.fromCharCode.apply(null,intArr.slice(8,16)),
                numberOfChannels = ((channelArr[0] & 0xFF) | ((channelArr[1] & 0xFF)<<8)),
                code = ((codeArr[0] & 0xFF) | ((codeArr[1] & 0xFF)<<8)),
                sampleRate = ((sampleRateArr[0] & 0xFF) | ((sampleRateArr[1] & 0xFF)<<8) | ((sampleRateArr[2] & 0xFF)<<16) | ((sampleRateArr[3] & 0xFF)<<24)),
                bitPerSample = ((bitPerSampleArr[0] & 0xFF) | ((bitPerSampleArr[1] & 0xFF)<<8));
            console.log('格式:'+ type + ' 声道数:' + numberOfChannels +' 编码:'+code + ' 采样率:'+sampleRate +' 采样位数:'+bitPerSample);

            /*audioCtx.decodeAudioData(audioData, function(buffer) {
              console.log(buffer)
            });*/
          }
          request.send();
      }
      getData();

参考资料:
https://blog.csdn.net/gwhcsdn...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文