Активируйте аудиоустройства - правильно отключите аудиоисточник - PullRequest
0 голосов
/ 13 сентября 2018

Для некоторого контекста у меня есть серия панорамных изображений, и с каждым изображением связан свой аудиофайл (mp3). Я пытаюсь воспроизвести соответствующий аудиоисточник, когда меняется изображение панорамы, однако я не могу отключить предыдущее аудиоисточник.

    <a-assets>
      <audio
        id="vr-audio"
        src={`http://res.cloudinary.com/concept3d/video/upload/audio_files/${trackId}`}
        preload="auto"
      />
    </a-assets>
      {Boolean(tracks.length) && <a-entity sound="src: #vr-audio" />}

Интерполированный trackId изменяется при изменении панорамы и извлечении из состояния моих компонентов. Я вижу, что URL-адрес аудио src меняется, как и ожидалось, но когда я запрашиваю звуковую сущность, src не обновляется до нового URL.

Любой совет приветствуется.

1 Ответ

0 голосов
/ 14 сентября 2018

Не меняйте аудио элемент на месте, компонент не поймает это. Вместо этого измените свойство src звукового компонента. Это может занять URL. <a-assets> на самом деле не требуется, если только для предварительной загрузки.

soundEl.setAttribute('sound', 'src', 'http://res.cloudinary.com/concept3d/video/upload/audio_files/${trackId}');

Если вы хотите управлять аудиоэлементом, создайте новый аудиоэлемент и назначьте новый идентификатор.

...