我一直在设计一个基于 html/js 的媒体播放器,其目标是为用户提供一些常见的 DAW 中的简单播放和区域移动功能。我的 ui 由 5 个单独的曲目和播放控件组成。通过使用wavesurfer.js,我已经能够成功地在这些轨道内创建任意数量的wavesurfer 实例/区域,将它们拖放到我想要的任何位置,并播放选定的音频文件。
在我对wavesurfer.js 的实验中,我发现每个实例都有自己的播放头,它指示所选音频文件的当前播放位置,并允许用户在该实例中导航播放。
我的问题是我还想要一个不包含在任何特定实例中的“主”播放头,并且不确定如何处理这个问题。
虽然那里有复杂的网络 DAW,但我还没有找到真正帮助我了解如何以我需要的方式处理音频播放的资源......但我知道它以前已经做过。我已经阅读了 webaudio API 和 wavesurfer.js 文档,除非我在 wavesurfer 的功能中缺少某些东西,否则我假设我需要使用 webaudio API 来实现这个结果 - 我会从定义一个新的 AudioContext 对象开始由所有当前音频文件作为 AudioNodes 组成?
对于多个音频文件/wavesurfer 实例,其播放必须依赖于它们在整个轨道工作区上下文中的用户确定位置,我将如何处理音频播放?
感谢您的任何见解,我很感激。