4

JavaScript でオーディオ プレーヤーを作成する通常の方法

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

は、オーディオ データがオブジェクトによって所有されていることを前提としていAudioます。オーディオ データを個別にロードし、その既存のデータを再生するオーディオ プレーヤーを作成する適切な方法は何ですか? ユースケースの 1 つは、エコー効果を作成するなど、複数のプレーヤーが同時に同じサウンドを再生する場合です。同じデータを使用して別のプレーヤーを作成するには、ただできると思います

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);

一度に複数のサウンドが必要な場合は、複数のチャネルをサポートするサウンドまたは音楽を再生するためのクラスを使用します。

そうそう、サウンドを再生するには、本体に追加することを忘れないでください:

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

そのようなオーディオ クラスが必要な場合は、私に尋ねてください (コメント ;)

于 2013-01-03T12:37:47.300 に答える