Примитив a-videosphere используется для отображения
360-градусного видео в виртуальной реальности. Он представляет собой
сферу, на внутренней поверхности которой проецируется видео, создавая
эффект полного окружения зрителя. Этот компонент особенно полезен для
VR-экспириенсов, виртуальных туров и иммерсивных презентаций.
src — ссылка на видеоисточник.
Может быть указана как через тег <video> в HTML, так
и через прямой URL. Формат видео должен поддерживать браузер (например,
MP4, WebM).
<a-videosphere src="#myVideo"></a-videosphere>
или
<a-videosphere src="video/360video.mp4"></a-videosphere>rotation — задаёт начальное
вращение сферы в сцене. Важно, если необходимо повернуть видео так,
чтобы зритель видел ключевые элементы с определённого угла.
<a-videosphere src="#myVideo" rotation="0 90 0"></a-videosphere>play-on-click — встроенная логика
для воспроизведения видео при клике или касании, особенно полезно для
мобильных устройств, где автоматическое воспроизведение ограничено
политикой браузера.
<a-videosphere src="#myVideo" play-on-click></a-videosphere>Для полноценного контроля видео чаще всего используют тег
<video> в HTML с последующей привязкой через
src:
<video id="myVideo" src="video/360video.mp4" crossorigin="anonymous" loop="true" muted="true"></video>
<a-videosphere src="#myVideo"></a-videosphere>
Особенности:
crossorigin="anonymous" обеспечивает корректную
работу текстур при загрузке видео с других доменов.loop позволяет воспроизводить видео циклично, что важно
для фонов VR-сцен.muted необходим для автоматического воспроизведения на
мобильных устройствах.A-Frame предоставляет возможность взаимодействовать с видео через JavaScript. Например, управление воспроизведением:
const videoEl = document.querySelector('#myVideo');
const sphereEl = document.querySelector('a-videosphere');
sphereEl.addEventListener('click', () => {
if (videoEl.paused) {
videoEl.play();
} else {
videoEl.pause();
}
});
Можно синхронизировать видео с другими объектами сцены, изменять его текстуру динамически, применять фильтры через шейдеры.
Видео на сфере фактически используется как текстура, поэтому к нему применимы стандартные A-Frame материалы:
material="side: back" — отображает
видео только на внутренней поверхности сферы.material="shader: flat" —
предотвращает искажения и отражения, создавая корректное отображение
360-градусного контента.Пример:
<a-videosphere src="#myVideo" material="shader: flat; side: back"></a-videosphere>
360-градусные видео имеют высокий объём данных, что может влиять на производительность:
preload="auto" для видео помогает быстрее
загружать контент.a-videosphere можно комбинировать с камерой и
контроллерами:
<a-scene>
<a-assets>
<video id="myVideo" src="video/360video.mp4" loop muted crossorigin="anonymous"></video>
</a-assets>
<a-videosphere src="#myVideo" material="shader: flat; side: back"></a-videosphere>
<a-entity camera look-controls wasd-controls></a-entity>
</a-scene>
Такая конфигурация создаёт полностью интерактивный VR-экспириенс, где пользователь может свободно осматривать сферическое видео.
<audio> элемент или встроенный звук видео, учитывая
ограничения autoplay на мобильных устройствах.videoEl.load() после изменения источника.a-videosphere является мощным инструментом для создания
иммерсивных VR-сцен, позволяя интегрировать панорамные видео и создавать
ощущение полного присутствия внутри виртуального пространства.