Получение и воспроизведение видеофайла, хранящегося локально на виртуальной гарнитуре Android (Oculus Quest) - PullRequest
0 голосов
/ 04 июня 2019

Я нахожусь в процессе создания прототипов, которые требуют от меня проигрывания больших видеофайлов из приложения Unity (10 ГБ +). Это 360 видео, которые будут воспроизведены в больничной среде, и поэтому мне сложно просто загрузить эти видео на сервер, как я делаю сейчас, и транслировать их. Больница не позволяет загружать подобные файлы, а соединение недостаточно для эффективной потоковой передачи.

Мое решение заключается в том, чтобы добавить видео в гарнитуру вручную, а затем просто воспроизвести их из приложения Unity, извлекая их по коду, так как я буду знать, где они хранятся. Увы, я не могу заставить это работать.

Я пытался поместить видео в папку потоковых ресурсов, но единство не может даже сформироваться при попытке этого, так как у меня возникают проблемы с пространством кучи Java, кроме того, я добавил разрешения для манифеста Android, поэтому у него должно быть разрешение на получение видео.

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Мне интересно, есть ли кто-нибудь, имеющий опыт работы с подобными вещами, который любезно пролил бы свет на то, как лучше разместить видеофайл локально в гарнитуре (скорее всего, в com. . папку или «постоянный путь»), а затем воспроизводить его из сценария или из видеоплеера Url / Path.

спасибо, любезно. Unity 2019.2 0b1

1 Ответ

1 голос
/ 04 июня 2019

Ваши видео в StreamingAssets не будут работать для файлов определенного размера на Android.Итак, что я делаю с моим Oculus Go MediaPlayer - это помещаю все видео в папку на моей гарнитуре, а затем загружаю их по абсолютному пути.В Unity вы можете получить rootpath для Android следующим образом:

rootPath = Application.persistentDataPath.Substring(0, Application.persistentDataPath.IndexOf("Android", StringComparison.Ordinal));

И оттуда просто добавьте путь к вашей собственной созданной папке, например, так:

string path = Path.Combine(Path.Combine(rootPath, "ExampleFolder/ExampleSubdirectory"), FileName);
...