Wavesurfer.js 是一个交互式波形渲染和音频播放库,非常适合网络应用。它利用现代网络技术提供了强大且视觉上引人入胜的音频体验。
<img width="626" alt="waveform screenshot" src="https://github.com/katspaugh/wavesurfer.js/assets/381895/05f03bed-800e-4fa1-b09a-82a39a1c62ce">黄金赞助商 💖 Closed Caption Creator
安装并导入包:
npm install --save wavesurfer.js
import WaveSurfer from 'wavesurfer.js'
或者,插入一个UMD脚本标签,将库作为全局变量 WaveSurfer 导出:
<script src="https://unpkg.com/wavesurfer.js@7"></script>
创建一个wavesurfer实例并传入各种选项:
const wavesurfer = WaveSurfer.create({ container: '#waveform', waveColor: '#4F4A85', progressColor: '#383351', url: '/audio.mp3', })
要导入插件,例如Regions插件:
import Regions from 'wavesurfer.js/dist/plugins/regions.esm.js'
或者作为脚本标签导出 WaveSurfer.Regions:
<script src="https://unpkg.com/wavesurfer.js@7/dist/plugins/regions.min.js"></script>
包中已包含TypeScript类型定义,因此无需安装 @types/wavesurfer.js。
查看更多示例。
请参阅我们网站上的wavesurfer.js文档:
我们维护了一些官方插件,添加了各种额外功能:
wavesurfer.js v7渲染到Shadow DOM树中。这将其CSS与网页的其他部分隔离。
然而,仍然可以通过 ::part() 伪选择器使用CSS来设置各种wavesurfer.js元素的样式。
例如:
#waveform ::part(cursor):before { content: '🏄'; } #waveform ::part(region) { font-family: fantasy; }
你可以在DOM检查器中查看可以设置样式的元素 – 它们会有一个 part 属性。
查看此示例来尝试样式设置。
对在您的网站上集成wavesurfer.js有疑问吗?请随时在我们的讨论论坛中提问。
但请记住,这个论坛专门用于wavesurfer相关问题。如果你是JavaScript新手,需要帮助解决一般基础问题(如导入NPM模块),请考虑先询问ChatGPT或StackOverflow。
<详细信息> <摘要>如何将wavesurfer.js连接到Web Audio效果?</摘要> 通常,wavesurfer.js并不旨在成为所有Web Audio相关功能的封装器。它只是一个带有波形可视化的播放器。它确实允许通过导出其音频元素来连接到Web Audio图(参见<a href="https://wavesurfer.xyz/examples/?4436ec40a2ab943243755e659ae32196">此示例</a>),但仅此而已。请不要期望wavesurfer能够以任何方式剪切、添加效果或处理您的音频。 </详细信息>
Wavesurfer.js v7是wavesurfer.js的TypeScript重写版本,带来了几项改进:
大多数选项、事件和方法与之前的版本相似。
backend: "MediaElement"选择加入)startTime的区域插件audioContext、closeAudioContext、audioScriptProcessorautoCenterImmediately – 除非音频正在播放,否则autoCenter现在始终立即生效backgroundColor、hideCursor – 可以通过CSS轻松设置mediaType – 您应该在media选项中传递整个媒体元素。示例partialRender – 默认执行pixelRatio – 默认使用window.devicePixelRatiorenderer – 目前只有一个渲染器,所以不需要此选项responsive – 默认启用响应式scrollParent – 如果将minPxPerSec设置为更高的值,容器将滚动skipLength – 不再有skipForward和skipBackward方法splitChannelsOptions – 现在应使用splitChannels传递通道选项。传递height: 0以隐藏通道。参见此示例drawingContextAttributes、maxCanvasWidth、forceDecode – 为减少代码复杂性而移除xhr - 请改用fetchParamsbarMinHeight - 最小条高度现在默认为1像素getFilters、setFilter – 参见Web Audio示例drawBuffer – 要重绘波形,请使用setOptions并传递新的渲染选项cancelAjax – 您可以在fetchParams中传递AbortSignalskipForward、skipBackward、setPlayEnd – 可以使用setTime(time)实现exportPCM替换为exportPeaks,返回浮点数组toggleMute现在称为setMuted(true | false)setHeight、setWaveColor、setCursorColor等 – 使用setOptions和相应的参数代替。例如,wavesurfer.setOptions({ height: 300, waveColor: '#abc' })查看新API的完整文档。
要开始开发,请按以下步骤操作:
yarn
yarn start
此命令将在浏览器中打开http://localhost:9090,并支持实时重载,让您在开发时可以看到更改。
测试使用Cypress框架编写。它们是端到端测试和视觉回归测试的混合。
要在本地运行测试套件,首先构建项目:
yarn build
然后启动测试:
yarn cypress
我们感谢您的反馈和贡献!
如果您遇到任何问题或有改进建议,请随时在我们的论坛上发帖。
我们希望您喜欢使用wavesurfer.js,并期待听到您使用该库的体验!


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免 费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号