【问题标题】:Error when playing large videofile with react-native-video使用 react-native-video 播放大型视频文件时出错
【发布时间】: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


【解决方案1】:

你会试试这个吗?

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

而不是下面

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

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

【讨论】:

  • 谢谢!但这是同样的错误。奇怪的是,一旦我将一个大文件放在资产文件夹中,应用程序就无法加载。 '错误:在 ChildProcessWorker.initialize 处超出了调用重试次数' 即使我不调用文件!我想可能是因为文件太重而无法加载到内存中?非常感谢任何想法如何解决这个问题!
  • 对不起@acroscene 它超出了我的能力。希望你能找到好的解决方案。
【解决方案2】:

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

平台:安卓

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多