Web アプリに統合されたオーディオ再生システムに取り組んでいます。これはまさに私がしなければならないことです: サウンド ファイルを作成し、oncanplaythrough イベントを確立し、ソース URL を読み込みます。ブラウザが mp3 ファイルをサポートしていない場合は、とにかく oncanplaythrough イベントをトリガーします (ファイルがまったく読み込まれなくても)。
var sound = new Audio();
sound.addEventListener('canplaythrough', function(){
alert('ready to play');
}, false);
if(sound.canPlayType('audio/mp3')){
sound.src = "myfile.mp3";
}
else{
// force event to fire anyway
sound.canplaythrough(); // doesn't work (this function is undefined)
// sound.oncanplaythrough() is "null" if I try to use that
}
最終的に、私の唯一の質問は、イベント「canplaythrough」を強制的に Audio オブジェクトで発生させるにはどうすればよいかということです。
PS ご参考までに、私はすべてのサウンド ファイルを 1 つずつロードしてからレベルを開始するゲーム用のオーディオ システムを作成しています。アイデアは、ファイルをロードするか、ブラウザがサポートしていない場合は空のままにすることです。いずれにせよ、リストに追加されたすべてのファイルに対してイベントが発生する必要があります。