react-native - 如何使用 expo react native 预加载视频

标签 react-native video expo preload

我正在构建一个视频组件,我可以在其中添加多个源。它只是一个接一个地阅读所有视频。 所以这很简单,现在我的自定义组件中只有一个视频组件,我会在需要时加载下一个视频或上一个视频。

我的问题是,当网络状况不佳时,每个视频之间的等待时间可能会有点长。

所以我想预加载视频并缓存它们,就像在播放另一个视频的同时加载视频一样。

我尝试使用 FileSystem.downloadAsync() 但它不是很流畅,您必须等到最后才有有效的 uri 才能将其传递给视频组件。因此,如果在上一个视频结束前未下载,您将无法阅读。 我想在我的自定义组件中包含多个视频组件,这些组件可以预加载视频并在合适的时候播放和显示,但我发现它非常复杂。

有更好的方法吗?

最佳答案

我刚刚发现您可以像处理图像一样使用 downloadAsync:

async componentDidMount() {
    await Asset.fromModule(require('../assets/background.mp4')).downloadAsync();
    this.setState({ videoLoaded: true });
}

关于react-native - 如何使用 expo react native 预加载视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611043/

相关文章:

reactjs - 将 <App> 包裹在 <Provider> 中,以实现 React EXPO 中的 React Redux

react-native - Expo CLI已全局安装,但是 "npm start"命令仍然询问

javascript - 错误 : `createNavigationContainer()` has been removed. 请改用 `createAppContainer()`

javascript - 状态更改时 View 未更新

react-native - 如何用react-native做一个多页面应用程序?

javascript - 无法在 Realm + React Native 中修改写入事务错误之外的托管对象

video - 更改 USB 摄像头的比特率

javascript - 如何播放视频列表中选定的视频?

javascript - 如何找到所有视频链接并添加 "Play Video"或 "Download Video"选项

node.js - "Error: spawn cmd ENOENT"在 Expo 初始化项目中