4

在 JavaScript 中创建音频播放器的常用方法

var a = new Audio();
a.src = "test.mp3";

假设音频数据归Audio对象所有。分别加载音频数据,然后创建可以播放现有数据的音频播放器的正确方法是什么?一个用例是当您想由多个播放器同时播放相同的声音时,例如创建回声效果。我会假设使用相同的数据创建另一个玩家可以做到

var b = new Audio();
b.src = a.src;

但我想知道这是否是最好的方法......如果是的话,考虑到这些事件已经触发,是否需要等待loadeddata/canplaythrough事件。ba

4

2 回答 2

3

由于 Audio 是一个常规的 DOM 元素,您可以使用 cloneNode() 方法来创建和播放相同的声音。

// Create your audio and clone
var myAudio = new Audio('my.mp3');
var myClonedAudio = myAudio.cloneNode();

// Play them simultaneously
myAudio.play();
myClonedAudio.play();
于 2013-04-15T07:21:14.380 回答
-1

要一次播放多个声音,您必须制作 2 个音频对象。否则,您可以在“结束”事件之后播放声音,例如:

obj.addEventListener('ended', function() 
{
    obj.play();
}.bind(this, obj), false);

如果你想一次有多个声音,使用一个类来播放声音或音乐——它支持多个通道。

哦,是的,要播放声音,别忘了将它添加到 body 中:

var audioTag     = new Audio('');
document.body.appendChild(audioTag);
audioTag.src    =  name;

如果你想要这样的音频课,问我(评论;)

于 2013-01-03T12:37:47.300 回答