実現したいこと
複数のボタンに振り分けている同じプログラムをつかい、最後にボタンを押してから1秒後に音が止まるようにしたいです。
前提
Audio.srcの中身は各ボタンごとに違うフリー素材のピアノの音を入れています。
発生している問題・エラーメッセージ
複数のボタンにaudioを再生するようにプログラミングしているのだが、同じ関数を複数のボタンで使っているためか、最初のボタンを押してから1秒後に処理が終了するのか、複数のボタンを押すと音が途切れる。なので、最後にボタンを押してから1秒後に音が止まるようにしたいです。
該当のソースコード
JAVASCRIPT
1// 2function audioStop(){ 3Audio.pause 4Audio.currenttime=0; 5} 6 7//音を鳴らす関数 8function playPiano(){ 9//音が重ならないようにする 10Audio.stop; 11const timer1 =setTimeout(audioStop,1000); 12Audio.play; 13clearTimeout(timer1); 14//ここで同じsetTimeIDでもう一回setTimeout(audioStop,1000);をやりたい 15} 16//各ボタンにピアノの音を鳴らす 17for(i=0;i<6=;i++;){ 18 ("i".tostring).Eventlistener("click",playPiano); 19}
試したこと
function playPiano(){
//音が重ならないようにする
Audio.stop;
const timer1 =setTimeout(audioStop,1000);
Audio.play;
clearTimeout(timer1);
setTimeout(audioStop,1000);
//ここで同じsetTimeIDでもう一回setTimeout(audioStop,1000);をやりたい
}
の場合、1秒以内に連続でボタンを押すと後に押したボタンの音が途切れます。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/05/29 02:42