Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
вы можете использовать response-native-video .
Я работал над проектами, которые предоставляют подписанный URL для видео в виде списка. Эти URL могут быть переданы / воспроизведены с помощью этого пакета.
Единственное, на что нужно обратить внимание, это то, что вам нужно генерировать подписанный S3 url , чтобы видео легко воспроизводилось. Один из способов проверить это - скопировать и вставить подписанный URL-адрес в браузер, и он должен сразу же начать потоковую передачу.
PS: я также сомневался, что URL-адреса s3 могут не воспроизводиться с использованием response-native-video, но, оказывается, сработает видео SignUrl. Вы можете использовать onError для устранения проблем. (Убедитесь, что URL воспроизводится с Chrome, прежде чем тестировать его на RNApp)
Пример кода
// Load the module
import Video from 'react-native-video';
<Video source={{uri: "s3 signed url"}} // Can be a URL or a local file.
ref={(ref) => {
this.player = ref
}} // Store reference
onBuffer={this.onBuffer} // Callback when remote video is buffering
onError={this.videoError} // Callback when video cannot be loaded
style={styles.backgroundVideo} />
// Later on in your styles..
var styles = StyleSheet.create({
backgroundVideo: {
position: 'absolute',
top: 0,
left: 0,
bottom: 0,
right: 0,
},
});