audiocontext 的 samplerate 属性直接返回只读采样率(如44100 hz),创建实例后立即可读,无需异步操作;需注意上下文启动状态及跨浏览器兼容性。

AudioContext 的 sampleRate 属性直接返回当前音频上下文所使用的采样率(单位:Hz),它由浏览器在创建 AudioContext 时根据设备硬件和系统设置自动确定,**无需额外调用方法或等待异步操作**。
直接读取 sampleRate 属性
创建 AudioContext 实例后,立即访问其 sampleRate 即可:
const audioContext = new (window.AudioContext || window.webkitAudioContext)(); console.log(audioContext.sampleRate); // 例如:44100、48000 或 96000
该值是只读的,创建后不可更改。不同设备或浏览器可能返回不同数值,常见值包括 44100 Hz(CD 标准)、48000 Hz(多数 USB 声卡/视频设备)。
注意上下文必须已启动
在部分浏览器(尤其是 Chrome 及基于 Chromium 的浏览器)中,AudioContext 初始化后处于“暂停”状态,此时 sampleRate 仍可读取,但为确保上下文已实际激活并反映真实音频路径配置,建议在用户交互(如点击)后调用 resume():
- 未启动时读取
sampleRate通常仍有效,但某些旧版 Safari 可能存在延迟初始化问题 - 调用
audioContext.resume()后再次读取,可确认上下文已绑定到系统音频设备
避免重复创建以获取“最新”采样率
sampleRate 在 AudioContext 生命周期内恒定,不会随系统设置动态变化。重启上下文(新建 AudioContext)才可能获得新值,但:
- 不建议频繁重建 AudioContext,会中断正在播放的音频、重置所有节点
- 系统级采样率变更(如 macOS 切换输出设备)通常需刷新页面才能生效
- 若需适配不同采样率,应在首次创建时记录,并用于后续音频处理(如 WebAssembly 解码、自定义 resampling)
兼容性与兜底处理
为支持 Safari 等需前缀的旧环境,推荐使用标准构造函数检测:
const AudioContext = window.AudioContext || window.webkitAudioContext; const ctx = new AudioContext(); const rate = ctx.sampleRate; // 安全读取
无需特殊错误处理——只要 AudioContext 创建成功,sampleRate 必然存在且为合法数字。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











