0

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 つずつロードしてからレベルを開始するゲーム用のオーディオ システムを作成しています。アイデアは、ファイルをロードするか、ブラウザがサポートしていない場合は空のままにすることです。いずれにせよ、リストに追加されたすべてのファイルに対してイベントが発生する必要があります。

4

3 に答える 3

3

イベントを手動で発生させるには、EventDOM API を使用する必要があります。DOM API は単なる要素のメソッドではありません。これはうまくいくかもしれません(テストされていません):

sound.dispatchEvent(new Event('canplaythrough'))

そのメソッドはfireEventIE で呼び出されます。

関連するドキュメントは次のとおりです。

于 2012-06-15T04:46:43.033 に答える
0

カスタマイズされたイベントを起動しようとしていますか? その場合は、event.initEventでイベントを初期化し、 dispatchEventを使用してそれを起動できます。

于 2012-06-15T04:20:03.067 に答える