2011-12-06 12 views
13

私はサウンドを再生しようとしています。私は2つの方法がわかりました。 どちらが良い方法で、なぜですか? 「ロード」イベントリスナーを追加することをお勧めしますか?HTML5とJavascriptを使用してサウンドを再生する最良の方法

最初の方法:

$(document).ready(function() { 
    var audioElement = document.createElement('audio'); 
    audioElement.setAttribute('src', 'sound.ogg'); 
    audioElement.addEventListener("load", function(){ 
     audioElement.play(); 
    }, true); 

    audioElement.play(); 
}); 

第二の方法:

$(document).ready(function() { 
    audioElement = new Audio('sound.ogg'); 
    audioElement.play(); 
}); 
+0

新しいオーディオ()の場合のオーディオのネットワークソースはどうですか? – vinnitu

答えて

2

「DOMReady」は、Imageの場合と同様に、サウンドファイルのダウンロードが完了するとは限りませんので、最初の方法(load)を使用してください。

+0

の代わりにhtml5shivスクリプトを使用していますが、オーディオファイルを初期化する良い方法はありますか? 'new Audio( 'sound.ogg');または' document.createElement( 'audio'); '?? –

+1

AFAIK彼らは同じです、両方とも新しい 'HTMLAudioElement'を作成します。しかし、 'new Audio()'コンストラクタは古い方法(DOM1以前)であり、 'document.createElement()'は新しい方法(DOM2)です。 'new Audio()'で作成した要素をドキュメントに添付することはできません。 'new Audio( 'sound.ogg')'は、var a = new Audio()のショートカットです。 a.src = 'sound.ogg'; '。 – tungd

+0

OK、ここでテストしましたhttp://jsperf.com/new-audio-vs-document-createelement-audio – tungd

1

あなたは本当にこのため、特徴検出システムを使用する必要があります。私はModernizr to test for HTML5 audioを使います。そうすれば、あなたはHTML5でそれを手に入れることができる人にオーディオを提供しようとしているだけです。

さらに、Modernizrを使用してtest for HTML5 featuresと代替手段を見つけることもできます。これらの代替品は「ポリフィル」と呼ばれ、Modernizrがサポートするこれらの一覧はhereです。

このようにすることの利点は、ブラウザの機能に関してすべての拠点をカバーしていることです。私はIE7を使用してまだそこに愚か者を同情します。

+0

私はModernizrについて知っていますが、IEの場合でサウンドを再生しようとしていますが、Modernizr –

関連する問題