FastMediaSorter VR-редакция
Что такое VR-редакция?
FastMediaSorter VR - выделенная сборка FastMediaSorter для VR-шлемов: Meta Quest 3, Quest Pro, Quest 2 и устройств Android XR (Samsung Project Moohan и далее). Использует тот же код и те же функции, что и Standard, плюс OpenXR-заготовку для стереоскопического рендеринга в шлеме.
VR-редакция - не отдельное приложение, а тот же код, собранный как vr product flavor с дополнительным слоем OpenXR-рендеринга.
Как обстоят дела сегодня: полноценный per-eye иммерсивный режим в шлеме уже работает в sideload-сборке noLegal (см. Установка VR через sideload). Флейвор vr - тот, что предназначен для Meta Horizon Store / Google Play - собирает ту же OpenXR-заготовку, но рендеринг в шлеме ещё не подключён; эта работа заведена в эпик S0773. Пока это не сделано, установка vr даёт полное приложение на шлеме без рабочего иммерсивного режима - для 3D-погружения сегодня используйте noLegal.
Ключевые отличия от стандартной версии
| Функция | Standard | VR (vr / noLegal) |
|---|---|---|
| Crop 3D-контента (SBS/OU/180/360) в один глаз | Есть, работает в обычном плеере | Есть, тот же код |
| Полный per-eye рендеринг в шлеме | Недоступен | noLegal: да, уже сегодня. vr: в планах (эпик S0773) |
| Ручной override формата + настройки распознавания | Скрыты | Активны (вкладка 3D в диалоге Control, блок VR/3D в настройках Медиа) |
| Wear OS companion | Включён | Не включён |
| Целевые устройства | Телефоны, планшеты | Сегодня - телефоны/планшеты; шлемы Quest и Android XR - после иммерсивной переработки |
Что идентично
Всё остальное работает так же - файловые операции (копировать, переместить, удалить, переименовать), сортировка, избранное, сетевые диски (SMB, SFTP, FTP), облачные хранилища (Google Drive, OneDrive, Dropbox), субтитры, выбор аудиодорожки, таймер сна, слайд-шоу и все элементы навигации. Трансляции включены полностью - воспроизведение интернет-радио и видеопотоков (http/HLS/DASH/RTSP), каталог трансляций, встроенный аудиомини-плеер с ICY-метаданными (станция/трек) и фильтры по категории и языку работают так же, как на телефоне.
Как это работает
-
Single-eye 3D - на любом флейворе: контент SBS/OU/180/360 определяется автоматически (по маркерам в имени файла, метаданным MP4/Matroska или опциональной эвристике по соотношению сторон) и обрезается до одного глаза, чтобы нормально воспроизводиться на любом плоском экране - телефон, планшет или обычное 2D-окно шлема. Работает из коробки, без VR-сборки.
-
Полное погружение - сегодня в
noLegal: на Quest или другом OpenXR-шлеме со сборкойnoLegalзапуск 3D-контента через бейдж VR в плеере, пункт «Open in VR Cinema» в меню файла в Browse или кнопку «Test Immersive» в настройках открывает выделенную OpenXR-сессию с настоящим per-eye рендерингом для SBS/OU/180/360. Переключение между файлами внутри сессии - только вперёд/назад; любая кнопка, клавиша или клик закрывает сессию и возвращает к плоскому экрану. -
Флейвор
vr: собирается и устанавливается, но рендеринг в шлеме ещё не подключён - пока работает как Standard, до иммерсивной переработки (эпик S0773).
Поддерживаемый контент
| Тип контента | Рендеринг |
|---|---|
| SBS-видео (Side-by-Side) | Crop одного глаза везде; полное per-eye стерео в иммерсивном режиме (noLegal) |
| OU-видео (Over-Under) | То же самое |
| SBS/OU-фото | Crop одного глаза везде; per-eye стерео в иммерсивном режиме (noLegal) |
| 2D-видео / 2D-фото | Обычное воспроизведение и показ, как в Standard |
| Аудио | Стандартное воспроизведение (унаследовано) |
| Интернет-радио (http/HLS, ICY) | Встроенное воспроизведение через мини-плеер Трансляций |
| Видеопоток / RTSP | Полноэкранный плеер, как в Standard; внутри иммерсивной OpenXR-сессии пока недоступен |
Дистрибуция
Сегодня рабочий иммерсивный режим в шлеме есть только в sideload-сборке noLegal. Флейвор vr ниже - предполагаемый канал для магазинов, но рендеринг в шлеме там ещё не подключён (эпик S0773) - установка даёт полное приложение без рабочего иммерсивного режима.
| Магазин | Платформа | Сборка | Статус |
|---|---|---|---|
| Meta Horizon Store | Quest 3 / Quest Pro / Quest 2 | assembleVrRelease |
В планах - иммерсивный режим ещё не подключён |
| Google Play | Устройства Android XR | bundleVrRelease (AAB) |
В планах - иммерсивный режим ещё не подключён |
Имя пакета: com.sza.fastmediasorter.vr
За рабочим 3D-погружением сегодня - в sideload-сборку noLegal, см. Установка VR через sideload.
Команды сборки
# Debug
.\scripts\builders\build-vr-debug.ps1
# Debug + установка на Quest через ADB
.\scripts\builders\build-vr-device.ps1
# Release APK (Meta Horizon Store)
.\scripts\builders\build-vr-release.ps1
# Release AAB + APK (Google Play / Android XR)
.\scripts\builders\build-vr-aab.ps1
# Gradle напрямую
.\gradlew.bat assembleVrDebug
.\gradlew.bat assembleVrRelease
.\gradlew.bat bundleVrRelease
Технические ограничения
- Поддерживаемая ABI: только
arm64-v8a. Meta Quest 2/3/Pro и гарнитуры Android XR - исключительно 64-битный ARM; для VR-флейворов не собираются слоиarmeabi-v7aилиx86_64. - Минимальный Android: API 26 (Android 8.0). Quest 2 ≈ Android 10, Quest 3 ≥ Android 12.
- XR-рантайм: для входа в иммерсивный режим нужен OpenXR 1.1.48+. Без обнаруженного XR-рантайма приложение работает как обычно, в плоском плеере - отдельного экрана-заглушки нет.
- Нативный код: поставляется OpenXR loader AAR плюс
openxr_native.so(C++ мост, собираемый CMake). Добавляет ~8 МБ нативной нагрузки поверх стандартной сборки. - Нет Wear OS companion: у шлемов нет парных часов, поэтому
SUPPORT_WEAR_COMPANION = false. - Package ID:
com.sza.fastmediasorter.vrпринадлежит флейворуvr(Store-канал). Sideload-сборка с VR отдаётся через флейворnoLegalи используетcom.sza.fastmediasorter- на одном устройствеvrиnoLegalмогут сосуществовать. - DTS / расширенные кодеки: всегда вшиты через
fms-ffmpeg-dts.aar. Hardware Quest везде arm64, поэтому single-ABI AAR достаточно каждому VR-пользователю.
Каналы дистрибуции
Два флейвора собирают VR/XR-код, но рабочий иммерсивный режим сегодня есть только у одного:
noLegal- ADB sideload через Developer Mode. Универсальная sideload-сборка покрывает телефоны, планшеты, Quest и Android XR одним APK. Всегда содержит DTS, Python+yt-dlp+NewPipeExtractor и полный VR-рантайм вне зависимости от политики магазинов - это единственный канал, где иммерсивное воспроизведение в шлеме реально работает сегодня. VR-функциональность gate’ится по runtime: на устройствах без OpenXR-рантайма VR-контролы показываются как disabled с advisory-надписью.vr- Meta Horizon Store / Google Play AAB. Остаётся Store-clean: без GPL-экстракторов, без Python-рантайма, без yt-dlp. Собирает ту же OpenXR-заготовку, что иnoLegal, но иммерсивный рендеринг там ещё не подключён (эпик S0773) - сегодня в шлеме работает как Standard.
Историческая заметка. До 2026-05-19 для VR-only sideload существовал отдельный флейвор
vrUnlicensed. Он слит вnoLegalпо тикету S0250, потому чтоnoLegalуже нёс все нужные для VR зависимости плюс более широкую sideload-поверхность. Текущий список VR / noLegal возможностей остаётся в FEATURES_RU.md и DOCS_MAP.md.
Fallback на телефоне
Если APK vr запущен на обычном телефоне, он работает точно как Standard - отдельного экрана-заглушки сегодня нет, потому что иммерсивный рендеринг флейвора ещё не подключён (эпик S0773). Когда это случится, телефон без XR-рантайма ожидаемо продолжит работать в обычном плоском плеере.
Связанная документация
- Установка VR через sideload - как установить VR APK на Quest без магазина
- Функции - полный перечень функций
- Архитектура - обзор архитектуры проекта