同步播放多個音頻或視頻對象的正確方法是使用mediagroup
屬性和相應的MediaController
對象。見文章"HTML5 multi-track audio or video":
[A] n的屬性稱爲@mediagroup可以在標記中被添加到從多個媒體元素在一起。這是通過一個MediaController對象在JavaScript API中進行管理的,該對象爲組合的多軌對象提供事件和屬性。
將兩個音頻文件都設置爲一個mediagroup
。將媒體元素分配給mediagroup
時,將爲該組創建MediaController
。在該控制器上使用play()
方法,並且該組中的所有媒體元素將同步播放。
編程,您可以在MediaController
從從媒體元素中的任何一個分配mediagroup
像這樣,然後從該點觸發play()
,就像這樣:
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 page,controller Property page,play() Method page和the standard)
注:我沒有測試上面的代碼;請,如果您可以確認此代碼不符合標準並且不能按預期運行,請告訴我們。請注意,您正在尋找HTML5標準的一個非常新的方面,並且這種情況下,不期望廣泛的瀏覽器兼容性。 (截至2014年1月)
感謝您的分享!嘗試了代碼,但我發現在任何主要瀏覽器都不支持conroller – spyfx
您不需要控制器元素。只是'sound1.play();' –
對此有何更新? –