Javascript SoundJS:混合html和web音频

Javascript SoundJS:混合html和web音频,javascript,createjs,soundjs,Javascript,Createjs,Soundjs,我想在游戏中播放长音乐文件的缓冲音频(类似于流媒体)。似乎我必须使用html音频: 但是,我仍然希望使用webaudio实现声音效果(例如,为了避免移动浏览器上的延迟) 这可行吗?我可以在同一个页面中对某些声音使用html音频,对其他声音使用web音频,或者我必须手动为我的音乐文件创建一些html音频标记吗 实际上,您可以将音频流传输到web音频api中,但这增加了相当多的复杂性。 当音频数据片段进入缓冲区时,您必须手动将其附加到缓冲区中,并将加载和解码移动到web worker中,这样您就不

我想在游戏中播放长音乐文件的缓冲音频(类似于流媒体)。似乎我必须使用html音频:

但是,我仍然希望使用webaudio实现声音效果(例如,为了避免移动浏览器上的延迟)


这可行吗?我可以在同一个页面中对某些声音使用html音频,对其他声音使用web音频,或者我必须手动为我的音乐文件创建一些html音频标记吗

实际上,您可以将音频流传输到web音频api中,但这增加了相当多的复杂性。 当音频数据片段进入缓冲区时,您必须手动将其附加到缓冲区中,并将加载和解码移动到web worker中,这样您就不会阻塞主线程。因为web workers中没有web音频,所以您必须使用第三方解码库。 我切换到一个web worker中,在应用程序中加载和解码音频,它将音频分块下载和解码,并且不会阻止主线程。另外,解码来自web api的音频数据会占用Firefox中的所有cpu,在我的机器上高达95%,速度相当快。
在这一点上,它允许我在不破坏浏览器选项卡的情况下加载更多的音频资源,100+20mb wav文件,其中主线程上的广告浏览器选项卡将在40多一点时崩溃。

为什么两者都需要?网络音频可以做HTML音频可以做的任何事情(而且更好)。兰尼,我想在加载巨大的音乐文件之前开始音频播放(不介意它是否为最终用户缓冲/中断)。我的理解(参见链接问题):除非SoundJS支持createMediaElementSource(是吗?),否则必须在播放之前完全下载流。Howlerjs为这个用例提供了html5:true标志。Quote:>在谷歌搜索之后,我发现了这个线程。它说WebAudioPlugin由于底层技术的原因不支持缓冲,但是HtmlLaudioPlugin可以在音频完全加载之前播放音频。是的,这是有用的信息,+1ed。没有将其标记为“正确”答案,因为我的问题是关于在SoundJS库(CreateJS的一部分)中混合html音频标记和webaudio的。然而,您的用例是:什么阻止您使用createMediaStreamSource?这是相当好的支持,我想他们甚至有它现在在最新的狩猎?我自己也没有试过。实际上我不需要流媒体支持,我选择了非阻塞特性、Firefox cpu使用率和可加载音频资产的增加。我实际上需要完整的文件,因为我必须绘制波形,当它流入时,有一些方法可以逐步完成,但对我来说,这是不必要的额外复杂性。我从主线程向worker发送一条消息,其中包含一个指向audio resource+id的url,worker下载并解码音频文件,然后将其发回主线程(通过传输,因此音频数据不必序列化)