You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Web Audio API获取音频采样率、位深度与声道数?

音频元数据获取问题解答

你要的三类元数据中,采样率、声道数可以通过Web Audio API直接获取,位深度则需要自行解析音频文件二进制数据才能得到。

可直接获取的元数据(采样率、声道数)

Web Audio API提供的decodeAudioData方法可以对音频二进制数据进行解码,返回的AudioBuffer实例直接暴露以下两个属性:

  • sampleRate:音频的采样率,单位为Hz
  • numberOfChannels:音频的声道数(1为单声道,2为立体声,以此类推)

示例代码如下:

const audioContext = new (window.AudioContext || window.webkitAudioContext)();

// file为你上传得到的File对象,也可以从<audio>元素关联的资源提取
file.arrayBuffer()
  .then(buf => audioContext.decodeAudioData(buf))
  .then(audioBuffer => {
    const sampleRate = audioBuffer.sampleRate;
    const channelCount = audioBuffer.numberOfChannels;
    console.log(`采样率:${sampleRate}Hz,声道数:${channelCount}`);
  })

需自行解析的元数据(位深度)

Web Audio API解码后得到的AudioBuffer存储的是标准化的32位浮点PCM数据,原始音频文件的位深度元数据不会在解码过程中保留,因此无法通过Web Audio API直接获取。

你需要根据音频文件的格式(WAV、FLAC、MP3等)解析文件头部的二进制字段,不同格式的位深度存储位置和规则不同,比如WAV格式可以直接在文件头固定偏移位置读取到位深度数值。


内容的提问来源于stack exchange,提问作者AdamInTheOculus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:15:05