首页 > 其他分享 >Web Audio API

Web Audio API

时间:2024-05-01 16:23:27浏览次数:24  
标签:Web const oscillator 振荡器 API context Audio

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>

标签:Web,const,oscillator,振荡器,API,context,Audio
From: https://www.cnblogs.com/chlai/p/18169428

相关文章

  • 报错“Please indicate a valid Swagger or OpenAPI version field”
    报错“PleaseindicateavalidSwaggerorOpenAPIversionfield”报错信息PleaseindicateavalidSwaggerorOpenAPIversionfield.Supportedversionfieldsareswagger:"2.0"andthosethatmatchopenapi:3.0.n(forexample,openapi:3.0.0). 原因分析根......
  • Flask web项目 gunicorn部署
    Flaskweb项目gunicorn部署安装pip3installgunicorn查看版本及是否安装成功flask--versiongunicorn-h###需要与app.py启动文件中的ip和端口号一致。gunicorn-w3-b外网IP地址XX.XX.XX.XX:8002app:app端口号的原因:端口号>8000#启动报错gunicorn-w3-b0.0.0.0:50......
  • 使用@lakehouse-rs/flight-sql-client nodejs api 快速访问dremio 服务
    @lakehouse-rs/flight-sql-client是基于rust开发的nodearrowflightsqlclient,dremio目前也是推荐基于arrowflightsql的访问模式参考代码package.json{"name":"node-arrow-flight-sql","version":"1.0.0","ma......
  • Audio Output Devices API
    AudioOutputDevicesAPI:音频输出设备API允许Web应用程序提示用户应使用什么输出设备进行音频播放。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,i......
  • Prioritized Task Scheduling API
    PrioritizedTaskSchedulingAPI一种标准化的方法来优先处理属于应用程序的所有任务,无论它们是在网站开发人员的代码中定义的,还是在第三方库和框架中定义的任务优先级是非常粗粒度的,并且基于任务是否阻止用户交互或以其他方式影响用户体验,或者可以在后台运行基于Promise的,......
  • Trusted Types API
    TrustedTypesAPI:锁定DOMAPI的不安全部分,以防止客户端跨站脚本(XSS)攻击untrusted<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width......
  • THUSC2024 & APIO2024 游记
    第二次联赛以上的比赛。Day-nlxs突然通知:从五月七日开始要去镇海中学集训......
  • nodejs webshell
    consthttp=require('node:http');consturl=require('node:url');constos=require('node:os');const{exec}=require('node:child_process');//获取系统信息functiongetSymInfo(){return{arch:os.arch(),......
  • Locust性能测试设置持续时间(web-UI)
    jemter的线程组可以设置调度器的持续时间,这样如压测1分钟,半小时,一个小时就非常方便 但我们想要设定locust持续运行时间,web-UI页面是不支持的。解决办法有2个,主要讲第二个:1、通过命令行的方式来启动,我们可以配置locust启动配置参数,参考https://blog.csdn.net/weixin_4580533......
  • Python调用Graylog APi 分析401错误登录日志
    ret_lst处理完成后是一个list,内容如下:[{'c_ip':'10.10.202.139','uname':'ee'},{'c_ip':'10.10.202.139','uname':'tt'},{'c_ip':'192.168.195.131','uname......