Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Воспроизведение аудиофайлов в заданной очереди javascript (https://javascript.ru/forum/misc/46143-vosproizvedenie-audiofajjlov-v-zadannojj-ocheredi-javascript.html)

Роберт Потоцкий 30.03.2014 12:48

Воспроизведение аудиофайлов в заданной очереди javascript
 
/*пока лишь нужно, чтобы при одном клике по тексту
вопроизводились по очереди два аудиофайла*/
<p onclick="one();two();">Кликни по этому тексту</p>

<script language="javascript" type="text/javascript">
/*получаем значение минуты у юзера, допустим, что получим 25*/
var d=new Date();
var x=d.getMinutes();
/*к каждому значению минуты присваиваем соответственную озвучку*/
/*насчет  audio.autoplay = true я пока не  понимаю,
и пишу потому что без этого не работает )*/
function one() {
  var audio = new Audio();
  if (x==25)
  {
    audio.src = 'twenty.wav';
  }
  audio.autoplay = true;
}
/*объявляем второй аудиофайл,
т.к. наша дорожка состоит из "twenty" и "five", воспроизводимых по очереди*/
function two() {
    var audio = new Audio();
  if (x==25)
  {
    audio.src = 'five.wav';
  }
  audio.autoplay = true;
}
</script>



Были идеи и о window.setTimeout(two(), 1000); но не работает или я не могу понять куда его нужно прописать. Собственно, как сделать проигрывание двух аудиофайлов по заданной очереди вопроизведения?

Роберт Потоцкий 30.03.2014 13:02

Ох, оказывается, функции работают как надо, но время задержки никакой и кажется, что файлы проигрываются одновременно. Хотя бы секунду задержки добавить...

Роберт Потоцкий 30.03.2014 13:09

Решение:
<p onclick="one();setTimeout(two,700);">Кликни по этому тексту</p>


Минус этого метода, что проигрывание аудиофайлов должно происходить только при открытом окне.
Как сделать, чтобы это было при свернутом окне?

Sweet 30.03.2014 15:28

Роберт Потоцкий, попробуй сделать по-нормальному. Пусть будет очередь, куда добавляются урлы аудио. Очередь запускает аудио, и по событию ended, запускает следующее. А one();two(); - это не программирование.


Часовой пояс GMT +3, время: 07:31.