私はHTML5オーディオタグを使用してオーディオファイルを再生していますが、私のルーチンはFirefoxをクラッシュさせるようです。アラートを追加すると機能します()。オーディオファイルを1つずつ再生する
私は、別のアプリケーションがサーバーに新しいイベントを送信した場合に2秒ごとにチェックするルーチンをPHPで作成しています。新しいイベントの名前を画面に書きます。これらのイベントの中には、それらに関連するオーディオファイルがあります(異なるサウンドになる可能性があります)。イベントが到着すると、オーディオファイルを再生する必要があります。
私はこのルーチンを持っている:
イベントが、私はこの関数を呼び出す到着すると:playSound(sound_name)。
function playSound(sound_name){
if (!current_sound){
current_sound = true;
$("#audio-player")[0].src = "../snd/"+sound_name;
//$("#audio-player")[0].load();
$("#audio-player")[0].play();
}
else {
//alert(sound_name);
playSound(sound_name);
}
}
変数 "current_sound"は、audio_playerがオーディオタグの "ended"イベントを発生させるとfalseに設定されます。私はこのイベントに関数をアタッチしました。それが発生するたびに、変数current_soundをfalseに設定します。
このコードの問題は、playSound()関数内のそのアラートでのみ機能することです。私がコメントすると、Firefoxがクラッシュし、jsスクリプトが完了するのに時間がかかりすぎていると言うことが始まります(私のものではなく、jsスクリプトの1つです)。
私は多くを検索しましたが、どのファイルを事前に再生するのかわからないため、私の場合には役に立たないファイルのリストをどのように再現するのかの例が見つかりました。
提案がありますか?
この質問の全「audio」要素(およびHTML5要素)を抽出して、これを実際のJavascript質問にすることができます。 –