You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

客户端项目如何引入使用Tone.js?有无可直接引用的CDN链接?

浏览器端无构建直接使用Tone.js方案
  • 直接用script标签引入就行,不需要本地装npm包,也不用browserify这类工具做转译,官方早就打包好了适配浏览器script标签的UMD格式产物,直接用就可以。
    能访问公网的场景直接用通用CDN地址,把下面的标签加到HTML里,放在你自己写的业务JS代码前面:
    <!-- 拉取最新稳定版 -->
    <script src="https://unpkg.com/tone"></script>
    
    怕版本更新出兼容问题就锁死固定版本,比如用14.x的稳定版:
    <script src="https://unpkg.com/tone@14.7.77/build/Tone.js"></script>
    
    做离线部署没法连公网的话,直接下载对应版本的编译好的Tone.js或者压缩版Tone.min.js丢到自己项目的静态资源文件夹里,script标签用相对路径引就行,不用额外做任何处理。
  • 引入成功校验方法
    引完之后全局会直接挂Tone对象,不用写import或者require,写段简单的测试代码就能验证:
    // 注意浏览器有安全限制,音频上下文必须在用户交互后才能启动,别在页面刚加载的时候直接调播放逻辑
    document.addEventListener('click', () => {
      Tone.start();
      console.log('Tone加载正常,上下文状态:', Tone.context.state);
    })
    
  • 容易踩的坑
    • 别用13版本以前的老包,部分老版本构建时没正确挂载全局变量,引完会报Tone未定义
    • 页面刚加载完直接调用音频播放接口一定会被拦截,必须等用户触发点击、按键这类交互行为之后,调用Tone.start()激活音频上下文才能正常用
    • npm包的build目录里已经放好了所有浏览器可直接运行的预编译文件,根本不需要自己走打包转换流程

官方文档和仓库没把script引入方式放在显眼位置,只是因为现在多数前端项目走npm+构建工具的开发流,但浏览器直引的版本一直是随版本同步发布的,不用找专门的客户端下载入口。

内容的提问来源于stack exchange,提问作者shaedopotato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:51:27