черный экран на Android - PullRequest
0 голосов
/ 09 ноября 2018

Текущее поведение

У меня есть список приложений для социальных сетей, в которых есть видео и изображения (до 10 Мб каждый). Есть экран с фидом пользователя, организованный в виде FlatList, на котором я загружаю пока только (!) Два видео и одно изображение. Приложение показывает черный экран вместо компонента Видео, только на Android. Проблема черного экрана не возникает в iOS! (Полагаю, потому что способ управления памятью и списки прокрутки выполняются в iOS)

Этапы воспроизведения

Это мой код для видео:

          <Video
            source={{ uri: this.state.uri }}
             ref={(ref) => {
               this.player = ref
             }}
             paused={this.state.paused}
             resizeMode={this.state.resizeMode}

             onLoad={this.handleLoad}
             onEnd={this.handleEnd.bind(this)}
             style={[this.state.style, { backgroundColor: '#3d3d3d' }]}
          />

также, если я добавлю в AndroidManifest:

Объем памяти, используемой приложением, как видно в Android Studio, составляет около 170 МБ и продолжает расти.

Ожидаемое поведение

Я ожидал показать видео.

Платформа

Окружающая среда:

ОС: macOS High Sierra 10.13.6

Узел: 8.10.0

Пряжа: 1,5,1

нпм: 5,6,0

Сторож: 4.9.0

Xcode: Xcode 9.4.1, сборка 9F2000

Android Studio: 3.1 AI-173.4670197

Пакеты: (хотел => установлен)

Реакция: 16.2.0 => 16.2.0

Реактор: 0,54,4 => 0,54,4

На каком игроке у вас возникла проблема: Я использую тег Видео из: импортировать видео из'act-native-video ';

https://www.dropbox.com/s/o7q9kejiabs7y88/CrashVideo.mp4?dl=0

Вопросы

1) как это можно решить?

2) Это связано с проблемами памяти? Когда я загружаю еще 10 видео, приложение вылетает из-за ошибки (как я вижу в Crashlytics), называемой «Fatal Exception: java.lang.OutOfMemoryError». Не загружается ли библиотека response-native-video при использовании большого объема памяти?

3) FlatList на Android выгружает из памяти изображения / видео при прокрутке их вне поля зрения? В противном случае, если я перестану выполнять прокрутку, буду ли я постоянно добавлять изображения / видео в память приложения, и это в конечном итоге приведет к сбою?

4) Другое решение для производительности для видео? Я думаю о реакции-native-thumbnail, чтобы сначала показать миниатюру, чтобы не загружать все видео. У меня проблемы с установкой библиотеки (проблема № 35 на https://github.com/phuochau/react-native-thumbnail/issues/35), знаете ли вы лучший способ получить миниатюру видео? (чтобы вместо показа видео в ленте я показывал их при касании миниатюры на другом экране).

5) Exoplayer устраняет эту проблему?

Это я считаю самой большой проблемой с этим приложением до сих пор. Сообщите, какие решения вы нашли в приложениях с каналами с видео. (Я разместил вопрос на Github здесь, но иногда я получаю ответы только на SO: https://github.com/react-native-community/react-native-video/issues/1318)

Спасибо!

...