html5 / javascript音频同时播放多个曲目

问题描述 投票:3回答:1

是否可以同时播放整个音频实例? 我知道,我可以每次创建一个新实例并在每个实例上调用.play(),但我认为它很脏。喜欢 sound1 = new Audio('sound1.mp3');
sound2 = new Audio('sound2.mp3);
sound1.play();
sound2.play;

它或多或少与这个帖子相同:Play multiple sound at the same time 但必须有优雅的方式吗?

javascript jquery html5 audio web-audio
1个回答
4
投票

编辑:MediaControllermediagroup原来是蒸发器。你会想要坚持“肮脏”的方式去做,至少现在,因为没有正式的同步解决方案。

同步播放多个音频或视频对象的正确方法是使用mediagroup属性和相应的MediaController对象。请参阅文章"HTML5 multi-track audio or video"

可以在标记中添加名为@mediagroup的n属性以将多个媒体元素一起从属。这是通过MediaController对象在JavaScript API中管理的,该对象为组合的多轨道对象提供事件和属性。

将两个音频文件都设置为单个mediagroup。将媒体元素分配给mediagroup时,会为该组创建MediaController。在该控制器上使用play()方法,组中的所有媒体元素将同步播放。

以编程方式,您可以像这样分配一个mediagroup,然后从那一点触发任何一个从属媒体元素在play()上的MediaController,如下所示:

sound1 = new Audio('sound1.mp3');
sound2 = new Audio('sound2.mp3');
sound1.mediaGroup = 'soundGroup';
sound2.mediaGroup = 'soundGroup';
sound1.controller.play();

(来源:w3school.com的HTML音频/视频DOM mediaGroup Property pagecontroller Property pageplay() Method pagethe standard

注意:我没有测试上面的代码;请注意,如果您确认此代码不符合标准且无法按预期运行,请告知我们。请注意,您正在研究HTML5标准的一个非常新的方面,在这种情况下,不要期望广泛的浏览器兼容性。 (截至2014年1月)

© www.soinside.com 2019 - 2024. All rights reserved.