我正在尝试使用react-native-video通过SD-CARD播放视频。我正在使用rn-fetch-blob软件包来连接SD-CARD。但是我无法播放任何视频。我已为该应用程序手动授予了存储权限,并且AndroidManifest.xml已经包含读写用户权限。
<Video
url={{
uri:
"file://" +
RNFetchBlob.fs.dirs.SDCardDir +
"/Video/videofile1.mp4"
}}
style={{ flex: 1 }}
/>
我尝试使用“源”代替“ URL”,很多人建议将“ file://”附加到开头,但是我没有成功。
使用的SD-CARD是SanDisk Ultra microSDHC UHS-I卡。
答案 0 :(得分:0)
以我有限(当然)的rn-fetch-blob经验,这不是一个诺言吗?
因此,与其直接在视频组件的网址中获得承诺,不如利用反应状态!并拥有...
(注意:我使用的是香草反应状态,请替换为您使用的任何东西,然后使用redux等)
state = {
url: false
}
.......then later in your render/return:
{
url
? <Video url={this.state.url} />
: <SomeLoaderComponentYouDefine />
}
然后使用rn-fetch-blob逻辑具有单独的功能,可能在componentDidMount()上触发(没有看到更多代码,很难确定最佳路径)。这样,将可以正确处理加载。 'SomeLoaderComponentYouDefine'可以为react native activity indicator
另外,了解它不能在哪个操作系统上运行,两个都只有一个等也是很有用的。特别是在android中,有一些与权限相关的未解决问题。以我有限的个人经验
对于iOS:
DocumentDir
对于android:
SDCardApplicationDir
通常有效。