【发布时间】:2019-09-28 15:20:28
【问题描述】:
我正在使用 react-native 构建一个应用程序,并尝试运行文件大小为 1.2 Gb 的视频文件,但我收到错误消息:
错误:无法创建长度超过 0x3fffffe7 个字符的字符串
我认为这是因为文件大小。如果我运行较小尺寸的视频文件,它可以正常工作。
这是我的组件的代码:
const Video = () => {
const myFile = require('../assets/myVideo.mp4');
return (
<Fragment>
<View>
<Video
repeat={true}
source={myFile}
ref={(ref) => {
video = ref
}}
onBuffer={this.onBuffer}
onError={this.videoError}
rate={1}
/>
</View>
</Fragment>
);
}
export default Video;
我该如何解决这个问题?我也尝试使用下面的 uri 流式传输它,但我不确定我的语法是否正确,因为什么都没发生:) 并收到此错误消息:
E/MediaPlayer:错误 (1,-2147483648)
<Video
repeat={true}
paused={!bgPaused}
source={{ uri: 'file:///Users/myAccount/myVideo.mp4' }}
ref={(ref) => {
fullscreenVideo = ref
}}
onBuffer={this.onBuffer}
onError={this.videoError}
style={styles.backgroundVideo}
rate={1}
/>
【问题讨论】:
-
如果您在应用外部访问文件,您的应用将需要请求读取外部存储的权限。
-
我猜它在应用程序内的资产文件夹中。但如果不是这种情况,我该如何请求许可?
-
您的手机不知道 MacFolder 的位置。您对路线的访问似乎有误。
-
至少它适用于较小的文件: const myFile = require('../assets/myVideo.mp4');
-
我说的路径不是项目文件路径。外部路径。比如手机内部文件
标签: react-native filesize react-native-video