Я переношу приложение Cordova в React-Native.
У нас есть VR Player в приложении, для использования с гарнитурами VR (Google Cardboard, Samsung Gear и т. Д.), Но его также можно воспроизводить как обычное видео в формате 2D 2D.
Delight VR предоставляет все необходимое со встроенными элементами управления и очень хорошо работает на Cordova.
При переходе на React-Native мы не смогли найти ни одного подобного нативного проигрывателя для него, ближайший из них - ViroMedia , однако он не предоставляет никаких встроенных элементов управления, не поддерживает другие проекции, кроме 360 (наши видео могут быть в другой проекции, например: 180 LR, 360 UD и т. д.).
Служба поддержки Delight VR ответила нам, подтвердив, что мы можем использовать React Native Webview для загрузки их проигрывателя.
Это не идеальное решение, но лучшее, что мы могли найти.
Затем я пытаюсь реализовать это с помощью response-native-webview, но пока я не смог добиться успеха.
The video source is stored in an S3 bucket and it is public accessible
Я пытался загрузить локальную веб-страницу
<WebView style={styles.container}
originWhitelist={['*']}
source={{ html: mypage }}
/>
Не работает, получил несколько сообщений, связанных с происхождением, и плеер продолжает загружаться вечно.
После нескольких тестов я обнаружил, что для работы delight vr требуется работающий веб-сервер, источником не может быть файл, не уверенный, что это было причиной его сбоя.
В любом случае, я настроил веб-сервер, общедоступный URL-адрес и протестировал его в браузере, и он работал хорошо.
Поэтому я изменил свой код, чтобы он указывал на этот URL
<WebView style={styles.container}
source={{ uri: 'https://myurl.com/' }}
/>
Теперь, когда я пытаюсь воспроизвести видео, я получаю сообщение
Содержание вопроса
Не найден воспроизводимый источник видео
Когда я захожу в контекст URL в Safari для отладки проблемы, я вижу, что запросы к видео не возвращают ошибку, однако, если я перехожу на вкладку предварительного просмотра, я вижу сообщение An error occurred trying to load the resource
я тоже пробовал разные варианты
т.е.: mixedContentMode='always' allowFileAccess={true} allowUniversalAccessFromFileURLs={true}
Есть идеи, что может быть причиной этой проблемы?
Если вам известны другие альтернативы для загрузки виртуальных (и обычных) видео в React-Native с аналогичными функциями Delight VR, можно также переключиться на него.