Web Audio API

Web Audio API: 控制Web上的音频提供了一个功能强大的通用系统,允许开发人员选择音频源,为音频添加效果,创建音频可视化,应用空间效果(如平移)等等

  • (oscillator)振荡器播放声音
<button type="button" class="btn-play">play</button>
<script>
// Web Audio API
// 创建一个 AudioContext 对象
const context = new AudioContext();
console.log('context => ', context);
// 创建一个(oscillator)振荡器节点
const oscillator = context.createOscillator();
console.log('oscillator => ', oscillator);
// 连接(oscillator)振荡器节点到输出节点
oscillator.connect(context.destination);
// 设置(oscillator)振荡器类型为 sine
oscillator.type = 'sine';
// 设置(oscillator)振荡器频率为 880Hz
oscillator.frequency.setValueAtTime(880, context.currentTime);
const playBtn = document.querySelector('.btn-play');
let paused = false;
playBtn.addEventListener('click', () => {
// 开始播放(oscillator)振荡器
oscillator.start();
});
</script>

  • 播放音频

点击按钮,音频文件将被获取、解码和播放

<button type="button" class="btn-play">play</button>
<script>
// Web Audio API
// 创建一个 AudioContext 对象
const context = new AudioContext();
console.log('context => ', context);
const playBtn = document.querySelector('.btn-play');
playBtn.addEventListener('click', async () => {
// 加载音频文件
const buf = await fetch('./tts.mp3').then((res) => res.arrayBuffer());
// 将音频文件解码为 AudioBuffer 对象
context.decodeAudioData(buf, (decodeData) => {
// 创建一个 BufferSourceNode 对象
const source = context.createBufferSource();
// 将 AudioBuffer 对象赋值给 BufferSourceNode 对象
source.connect(context.destination);
source.buffer = decodeData;
// 开始播放
source.start();
});
});
</script>
posted @   _clai  阅读(294)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示