如何判断HTML5 Web Audio API最低支持采样率及版本变更时间
检测浏览器对8000Hz采样率的支持
你可以通过尝试初始化指定采样率的AudioContext来验证浏览器是否支持8000Hz:
async function supports8KSampleRate() { try { // 尝试创建指定8000Hz采样率的AudioContext实例 const audioContext = new AudioContext({ sampleRate: 8000 }); // 部分浏览器会自动回退到支持的采样率,需验证实际采样率是否匹配 const isSupported = audioContext.sampleRate === 8000; audioContext.close(); return isSupported; } catch (error) { // 初始化失败则说明不支持该采样率 return false; } } // 实际使用示例 supports8KSampleRate().then((supported) => { if (!supported) { alert("当前浏览器不支持8000Hz采样率,请使用更高采样率的音频文件"); } });
核心逻辑是:若浏览器不支持指定采样率,要么直接抛出初始化错误,要么自动回退到它兼容的采样率,因此需要校验最终创建的AudioContext的sampleRate属性是否等于8000。
Web Audio API采样率范围的变更时间
Web Audio API最初规范将最低采样率限制为22050Hz,后续各浏览器逐步放宽了这一限制:
- Chrome/Edge:从版本61(2017年9月发布)开始支持8000Hz及更低采样率
- Firefox:从版本60(2018年5月发布)开始支持8000Hz采样率
- Safari:从版本14(2020年9月发布)开始支持8000Hz采样率
这一变更源于Web Audio API规范的更新,将采样率范围调整为8000Hz到96000Hz,以此适配低带宽场景和专业音频需求。
内容的提问来源于stack exchange,提问作者Brad Bruggemann
相关产品推荐
相关产品推荐

