我正在开发一个使用 Web Audio API 解密(使用 openpgp.js)和解码服务器端音频文件的小项目。解密的文件作为原始音频到达客户端。目前,我可以使用播放音频文件,source.start(0)
但似乎没有一种简单的方法可以将音频转储到 GUI,从而允许用户执行诸如调整音量和搜索音频之类的操作。
我有一个AudioContext
被解码和缓冲的对象createBufferSource
function playSound(decodedAudio) {
var source = context.createBufferSource();
source.buffer = decodedAudio;
source.connect(context.destination);
source.start(0);
}
因为接收到的是原始音频,所以我不能简单地使用audio.src = ...
音频元素之类的东西。或者也许我忽略了一些明显的东西?
有没有办法让 Web Audio API 中的解码音频与目标<audio>
元素很好地播放?
理想的流程看起来像...
1) 用户单击以播放音频剪辑
2) 音频在服务器端解密并作为原始音频发送到客户端
3) 音频被解码并可播放、可搜索。 ..ETC。
我喜欢考虑的可能解决方案
- 因为音频文件的范围可以从 1 分钟到 60 分钟不等,所以使用 FileSystem API 将音频写入文件,然后使用<audio>
元素进行实际播放
- 编写我自己的暂停控制系统、擦洗和音量在 Web Audio API 之上