2

我用 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}
/>
4

2 回答 2

0

你会试试这个吗?

从“../assets/myVideo.mp4”导入我的文件;

而不是下面

const myFile = require('../assets/myVideo.mp4');

希望它有效,但不要期望太多!

于 2019-09-28T16:10:18.743 回答
0

如果您需要使用当前模块支持的路径来解决它,您可以为每个使用两个

平台:安卓

source={{ uri: 'file:///sdcard/Movies/myVideo.mp4' }}

注意:如果您正在访问应用程序外部的文件,您的应用程序将需要请求读取外部存储的权限。

平台:iOS iTunes 资料库中声音文件的路径。通常从 iTunes 共享到您的应用程序。

source={{ uri: 'ipod-library:///path/to/myVideo.mp3' }}

注意:使用此功能将 NSAppleMusicUsageDescription 的条目添加到您的 Info.plist 文件中,如此处 所述

如果您不想使用这两种方法,有一种方法可以将它们上传到外部站点并获取该文件的路径。

于 2019-09-29T09:18:13.910 回答