0

0

音频处理:Web Audio API基础用法

夜晨

夜晨

发布时间:2025-11-21 21:36:45

|

515人浏览过

|

来源于php中文网

原创

Web Audio API 通过 AudioContext 管理音频节点,实现加载、播放、增益、滤波和频谱分析。1. 创建 AudioContext 作为核心;2. 用 fetch 加载音频并解码为 AudioBuffer;3. 通过 BufferSourceNode 播放;4. 连接 GainNode 调节音量;5. 使用 BiquadFilterNode 实现低通滤波;6. 利用 AnalyserNode 获取频谱数据用于可视化。在用户交互中启动上下文以避免自动播放限制,掌握这些基础即可构建基本音频功能。

音频处理:web audio api基础用法

Web Audio API 是浏览器提供的强大工具,用于在网页中处理和播放音频。它不依赖第三方插件,可以直接生成、加载、分析和修改音频数据,适合做音乐应用、游戏音效、语音处理等场景。核心是通过音频上下文(AudioContext)构建音频节点连接的处理链。

创建音频上下文

所有操作都从 AudioContext 开始。它是整个音频处理的中枢,负责管理音频节点和时间调度。

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

建议在用户交互(如点击按钮)中启动上下文,避免自动播放被浏览器阻止。

加载与播放音频文件

使用 fetch 或 XMLHttpRequest 获取音频文件,解码为音频缓冲区后播放。

async function loadAndPlay(url) {

  const response = await fetch(url);

  const arrayBuffer = await response.arrayBuffer();

  const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);

  const source = audioContext.createBufferSource();

  source.buffer = audioBuffer;

  source.connect(audioContext.destination);

  source.start();

}

source.start() 可传入延迟时间,实现精确播放控制。

添加效果:增益与滤波

通过连接不同节点,可以对音频进行处理。常见的有音量调节和频率过滤。

  • 增益控制:使用 GainNode 调整音量
  • const gainNode = audioContext.createGain();

    gainNode.gain.value = 0.5; // 半音量

    source.connect(gainNode);

    gainNode.connect(audioContext.destination);

    NeoAgent
    NeoAgent

    销售易推出的AI‑CRM智能体平台

    下载
  • 低通滤波:用 BiquadFilterNode 过滤高频
  • const filter = audioContext.createBiquadFilter();

    filter.type = 'lowpass';

    filter.frequency.value = 1000; // 截止频率 1000Hz

    source.connect(filter);

    filter.connect(audioContext.destination);

实时分析音频频谱

使用 AnalyserNode 获取音频的时域或频域数据,常用于可视化波形或频谱条。

const analyser = audioContext.createAnalyser();

analyser.fftSize = 2048;

source.connect(analyser);

analyser.connect(audioContext.destination);

const bufferLength = analyser.frequencyBinCount;

const dataArray = new Uint8Array(bufferLength);

function draw() {

  requestAnimationFrame(draw);

  analyser.getByteFrequencyData(dataArray);

  // 使用 canvas 绘制 dataArray 数据

}

draw();

基本上就这些。掌握上下文、节点连接、缓冲播放和简单处理,就能搭建基础音频功能。后续可深入学习振荡器、声相控制、离线渲染等高级特性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

527

2023.09.20

function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

482

2023.08.04

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

163

2023.10.07

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

508

2023.10.23

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

1

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

0

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

1

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

1

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

1

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号