2

我想在我的游戏中播放缓冲音频以播放长音乐文件(流式传输)。看来我必须使用 html 音频: SoundJS 中的缓冲音频

但是,我仍然想使用 webaudio 来制作音效(例如,为了避免移动浏览器上的延迟)。

这是可行的吗?我可以在同一页面中对某些声音使用 html 音频,对其他声音使用网络音频,还是必须为我的音乐文件手动创建一些 html 音频标签?

4

1 回答 1

4

您实际上可以流式传输到网络音频 api,但它增加了相当多的复杂性。您将不得不手动将音频数据片段附加到您正在播放的缓冲区中,并将加载和解码移动到 Web Worker 中,这样您就不会阻塞主线程。由于网络工作者无法使用网络音频,因此您必须使用第三方解码库。我换了极光在用于在应用程序中加载和解码音频的网络工作者中,它以块的形式下载和解码音频并且不会阻塞主线程。还从 web api 解码音频数据会占用 Firefox 中的所有 cpu,在我的机器上高达 95%,这相当快。最重要的是,它允许我加载更多的音频资产而不会崩溃浏览器选项卡,100+ 20mb wav 文件,其中主线程上的广告浏览器选项卡会在 40 多一点时崩溃。

于 2017-11-21T06:57:47.057 回答