客户端项目如何引入使用Tone.js?有无可直接引用的CDN链接?
浏览器端无构建直接使用Tone.js方案
- 直接用script标签引入就行,不需要本地装npm包,也不用browserify这类工具做转译,官方早就打包好了适配浏览器script标签的UMD格式产物,直接用就可以。
能访问公网的场景直接用通用CDN地址,把下面的标签加到HTML里,放在你自己写的业务JS代码前面:
怕版本更新出兼容问题就锁死固定版本,比如用14.x的稳定版:<!-- 拉取最新稳定版 --> <script src="https://unpkg.com/tone"></script>
做离线部署没法连公网的话,直接下载对应版本的编译好的<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
相关产品推荐
相关产品推荐

