我正在将Cordova应用程序迁移到React-Native。
我们在应用程序上提供了一个VR播放器,可与VR耳机(Google Cardboard,Samsung Gear等)配合使用,但也可以将其作为普通的360 2D视频播放。 Delight VR通过内置的控件提供了我们所需的一切,并且在Cordova上运行得很好。
在迁移到React-Native时,我们找不到适合它的本机播放器,最接近的是ViroMedia,但是它不提供任何内置控件,不支持其他投影比360(我们的视频可以采用不同的投影方式,例如:180 LR,360 UD等)。
Delight VR的支持团队答复我们,确认我们可以使用React Native Webview加载其播放器。 这不是理想的解决方案,但它是我们可以找到的最佳解决方案。
然后,我正在尝试使用react-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需要运行Web服务器,原始源不能是文件,不确定这是否是失败的原因。 无论如何,我已经设置了一个Web服务器,一个公共URL,并在浏览器上对其进行了测试,并且运行良好。 所以我更改了代码以指向该URL
<WebView style={styles.container}
source={{ uri: 'https://myurl.com/' }}
/>
现在,当我尝试播放视频时,收到消息
内容问题
找不到可播放的视频源
当我在Safari中转到url上下文调试问题时,我看到对视频的请求没有返回错误,但是,如果我转到“预览”标签,则会看到消息An error occurred trying to load the resource
我也尝试了不同的选择
即:mixedContentMode='always' allowFileAccess={true} allowUniversalAccessFromFileURLs={true}
任何可能导致此问题的想法? 如果您知道有其他替代方法可以在具有类似Delight VR功能的React-Native上加载VR(和常规)视频,也可以选择切换到该视频。