我正在制作一个全客户端音频/音乐编辑器。我在数学上创建了几个音调,在<audio>
src-attribute中存储为base64。我可以同时播放不同的音调但是我只能同时播放一个特定音调的一个实例。
例如,单击按键以疯狂地播放C将听起来非常尴尬,因为正在播放的C被停止并且新的C开始。我希望有可能同时播放几个C音调!
现在我想这可以通过简单地复制音频元素(一次或多次)并使按键进行循环来完成。例如,如果正在播放第一个C音并且单击播放C的键,则播放第二个C音频元素,依此类推。
这样可行......但由于我在源代码中使用了base64,我也必须复制它。
<audio id="C1"><source src="data:audio/wav;base64,audio_data"></source></audio>
<audio id="C2"><source src="data:audio/wav;base64,audio_data"></source></audio>
如果&#34; audio_data&#34;会很长,然后html会变得很糟糕,而且我认为浏览器不会理解两者实际上是完全相同的数据,所以它会非常不优化。
所以对于具体的问题:有没有办法同时多次播放相同的base64数据,而不需要复制整个src-attribute和base64字符串? (因为我的应用程序是全客户端所以我无法将数据保存到服务器上的声音文件中)
看一个简单的例子。它可能不适用于其他浏览器而不是Firefox,因为我没有测试过:
https://jsfiddle.net/tx3hpptL/