Я использую реагирующее видео для воспроизведения видео и ImagePicker для выбора видео. Когда я выбираю видео большого размера, оно приводит к созданию приложения sh.
//for select video and set state for video uri
selectVideo = () => {
this.setState({videoData: ''})
ImagePicker.showImagePicker(options2, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
} else {
const source = {uri: Platform.OS === 'android' ? response.uri : response.uri.replace('file://', '')};
console.log(source)
const data = {};
RNFetchBlob.fs.readFile(source.uri, 'base64')
.then((data) => {
this.props.setSelectedVideo(data)
console.log("data::: " + data)
}).then((res) => console.log('res:', res))
.catch(err => console.log('err', err))
this.props.setVideoSource(source)
this.props.setSelectedVideoName(response.fileName)
// this.props.setSelectedVideo(data)
}
});
}
//for play video
<Video source={this.props.videoSource} // 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}
controls={true}
fullscreen={true}
style={styles.uploadImage}/>
Это мой код для выбора и воспроизведения видео. Также для эмулятора ios я могу выбрать видео, а затем после приложения cra sh, но в реальном устройстве не могу выбрать видео специально для ios. Для Android он работает нормально с небольшим размером видео, но для большого размера не работает и приводит к app cra sh.