Ошибка при воспроизведении большого видеофайла с response-native-video - PullRequest
1 голос
/ 28 сентября 2019

Я создаю приложение с реактивным родным языком и пытаюсь запустить видеофайл размером 1,2 ГБ с размером файла, но получаю сообщение об ошибке:

Ошибка: невозможно создать строку длиной более 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}
/>

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Если вам нужно разрешить его с помощью пути, поддерживаемого вашим текущим модулем, вы можете использовать два для каждой

Платформа: Android

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

Примечание. Ваше приложение должно запрашивать разрешение на чтение из внешнего хранилища, если вы обращаетесь к файлу вне приложения.

Платформы: iOS Путь к звуковому файлу в вашемБиблиотека iTunes.Обычно предоставляется из iTunes в ваше приложение.

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

Примечание. При использовании этой функции добавляется запись для NSAppleMusicUsageDescription в файл Info.plist, как описано здесь

Если вы не хотите использовать эти два метода, есть способ загрузить их на внешний сайт и получить путь к этому файлу.

0 голосов
/ 28 сентября 2019

Вы бы попробовали это?

импортировать myFile из "../assets/myVideo.mp4";

, а не ниже

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

Надеюсь, что это работает, но не стоит ожидать слишком много!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...