Видео aframe 360 ​​отображается только в первый раз. Тогда только звук - PullRequest
0 голосов
/ 29 октября 2018

Я работаю над туром по webvr и использую a-frame для его сборки. У меня странная проблема. Мне кажется, что я могу запрограммировать воспроизведение видео внутри видеосферы и правильно отображать каждую его секунду при первом входе в новую сцену, но всякий раз, когда я выхожу из нее и пытаюсь войти в нее снова, только звук работает как положено , Мне интересно, что я делаю что-то не так при загрузке видео или что-то

Я собираю путь к видео из файла json, в котором я описываю, что содержится в каждой комнате (они могут иметь интерактивные контакты для видео 16: 9, изображений и сортировки, а также контакты, которые просто загружают новую сцену ). После загрузки json я установил источник видеосферы с именем image360 следующим образом:

document.getElementById("image360").setAttribute('src', "#" + jsonArray.zones[zoneID].locations[locationID].name);

Затем я проигрываю видео, используя следующий код:

video = document.querySelector('#' + jsonArray.zones[zoneID].locations[locationID].name);
    video.muted = false;
    video.addEventListener("ended", videoEnded);
    video.play();

Прослушиватель событий, который я добавляю в видео, заботится о том, чтобы вернуть пользователя к предыдущей сцене после окончания видео, что я и делаю, используя этот код:

 //This function is called immediately after the end of a 360 video. Thus it first starts by obtaining the scene it should load after the end of the scene
    var thisEl = document.querySelector('#' + jsonArray.zones[zoneID].locations[locationID].name);
    var currentLocation = jsonArray.zones[zoneID].locations[locationID];
    var locationToReturnTo = currentLocation.locationToReturnTo;
    var zoneToReturnTo = currentLocation.zoneToReturnTo;
    //With the information obtained, the room is then loaded
    generateRoom(zoneToReturnTo, locationToReturnTo);
    //After loading the room, time to generate the correct pins
    generatePins(zoneToReturnTo, locationToReturnTo);

Я действительно в растерянности, и понятия не имею, почему это не работает. Я должен отметить, что javascript и aframe не являются моей областью компетенции вообще, я просто должен был поднять этот проект после того, как мой бывший коллега, который работал над ним, внезапно покинул компанию, поэтому извините, если я делаю основная ошибка.

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

1 Ответ

0 голосов
/ 29 октября 2018

Переключение видео непосредственно на объект может работать неправильно:

document.querySelector("a-video").setAttribute("src", "vid.mp4")

из-за текущей обработки tmp <video> .


Вам следует попробовать использовать систему управления активами :

<a-assets>
  <video id="vid" src="derby.mp4"></video>
</a-assets>

<!-- Scene. -->
<a-plane src="#vid"></a-plane>

JS

(#vid).setAttribute("src", "newvid.mp4")
...