我正在构建一个视频组件,可以在其中添加多个源。而且它只是一个接一个地阅读所有视频。 所以这很简单,现在我的自定义组件中只有一个视频组件,并且在需要时可以对下一个视频或上一个视频进行loadAsync。
我的问题是,当互联网出现问题时,每个视频之间的等待时间可能会有些长。
因此,我想预加载视频并像在另一个视频播放的同时加载视频一样缓存它们。
我尝试使用FileSystem.downloadAsync(),但这并不是很顺利,您必须等待最后一个有效的uri才能将其传递给视频组件。因此,如果未在上一个视频结束之前下载该文件,则无法阅读。 我当时想在我的自定义组件中包含多个视频组件,这些组件可以预加载视频并在合适的时候播放和显示,但我觉得它很复杂。
有更好的方法吗?
答案 0 :(得分:0)
我刚刚发现您可以像在图片上一样使用downloadAsync
:
async componentDidMount() {
await Asset.fromModule(require('../assets/background.mp4')).downloadAsync();
this.setState({ videoLoaded: true });
}