Можно ли последовательно воспроизводить несколько звуковых файлов на событии onMouseover? - PullRequest
1 голос
/ 20 января 2011

Я знаю, как воспроизводить один звуковой файл одновременно с событием onMouseover, например,

onMouseover="Playsound(1.wav) 

Однако я хочу воспроизвести несколько звуковых файлов (1.wav, 2.wav,3.wav и т. Д.) последовательно при наведении мыши либо на изображение, либо на другой элемент.

Возможно ли это вообще?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 20 января 2011

Вы можете сделать это, прикрепив функцию к наведению мыши на событие, т.е.

element.addEventListener('mouseover',function () {
    Playsound(1.wav);
    /* do stuff ... if you can retrieve 1.wav length you could use, as semyon mentioned, a setTimeout to play other sounds sequentially i.e. .. */
    setTimeout(playanothersoundfn,GetLength(1.wav));
},false)
0 голосов
/ 08 июня 2012

Лучший способ сделать это - использовать html5 audio element и зарегистрировать обработчик для окончания клипа:

 <audio src="1.wav" id="first"></audio>
 <audio src="2.wav" id="second"></audio>
 audio = document.getElementById('first');
 audio.addEventListener('ended', function(){
   //play next clip
 });
 audio.play();

setTimeout не подходит для случаев, когда требуется точное время. Если первый аудиоклип был немного запаздывающим, ваш setTimeout остановится на каблуках. Вы также полагаетесь на то, что бог знает, что происходит у клиента. : -)

0 голосов
/ 20 января 2011

если вам известны длины звуков, вы можете использовать setTimeout для их последовательного воспроизведения

...