Как в кадре циклически воспроизводить следующий звук после первого запуска? - PullRequest
0 голосов
/ 24 марта 2020

Как в a-frame циклически воспроизводить следующий звук после первого запуска? Анимация не работает.

<a-sky src="#room" sound="src:#soundstart; autoplay:true; loop:false" rotation="0 300 0" animation="property:sound.src; to:#soundfon; autoplay:true; delay:5000; loop:true"></a-sky>

1 Ответ

1 голос
/ 25 марта 2020

Это похоже на задание для пользовательского компонента кадров:

  • Воспроизведение первого звука
  • Подождите, пока он не закончится
  • Воспроизведите второй звук.

Допустим, у вас есть такая настройка:

<a-entity manager></a-entity>
<a-box id="first" sound="src: url(sound1.mp3);"></a-box>
<a-box id="second" sound="src: url(sound2.mp3);"></a-box>

Вы можете легко управлять звуками с помощью компонента, например:

AFRAME.registerComponent('manager', {
  init: function() {
     // grab the boxes
     let first = document.querySelector("#first")
     let second = document.querySelector("#second")

     // play the first sound
     first.components.sound.playSound();

     // wait for it to end
     first.addEventListener("sound-ended", function() {
       // play the second one     
       second.components.sound.playSound();
     })
  }
}

проверить это в этот глюк

...