Я использую библиотеку react-native-image-picker для записи видео и react-native-video для воспроизведения видео, в котором указана продолжительность видео в функции обратного вызова onLoad, но как я могу использовать ее в своем коде, может ли кто-нибудь помочь мне? Я написал функцию durationLimit, но она не работает. Как я могу записать видео продолжительностью 30 секунд? Пробовал это
тоже, но не удалось.
Мой код
import ImagePicker from 'react-native-image-picker';
import Video from 'react-native-video';
constructor(props){
super(props);
this.state = {
video: '',
isVideo: true
};
};
_handleVideoUpload = () => {
const options = {
mediaType: 'video',
videoQuality: 'medium',
durationLimit: 30000,
thumbnail: true,
allowsEditing: true,
};
ImagePicker.launchCamera(options, (response) => {
if (response.didCancel) {
// console.warn('User cancelled video picker');
return true;
} else if (response.error) {
// console.warn('ImagePicker Error: ', response.error);
} else if (response.customButton) {
console.warn('User tapped custom button: ', response.customButton);
} else {
this.setState({video: response.uri});
}
});
}
render() {
return(
<View>
{
this.state.video != '' ?
<View>
<Video
ref = {ref => this._video = ref}
source = {{ uri: this.state.video }}
resizeMode = {'cover'}
repeat = {true}
paused = {true}
onLoad = {() => { this._video.seek(2);}}
/>
</View>
:
<TouchableOpacity
onPress = {() => this._handleVideoUpload()}
>
<Text>Upload Video</Text>
</TouchableOpacity>
}
</View>
);}
Заранее спасибо.
Извините, я пока не могу найти решение @Purvik Rana Если я обязательно напишу здесь.





Если вы хотите записать видео продолжительностью 30 секунд, вам нужно поместить 30 в durationLimit, а не 30000.
`const options = {
mediaType: 'video',
videoQuality: 'medium',
durationLimit: 30,
thumbnail: true,
allowsEditing: true,
};`
Если вы хотите узнать продолжительность видео на <Video />, вы можете сделать это:
`_onLoad(data){
let durationVideo = data.duration
}
...
<Video
ref = {ref => this._video = ref}
source = {{ uri: this.state.video }}
resizeMode = {'cover'}
repeat = {true}
paused = {true}
onLoad = {() => this._onLoad()}
/>`
Я надеюсь это тебе поможет.
спасибо за помощь @josecasrillo Я пробовал это, но не работает
Привет, @Riddhi! Если вы нашли какое-либо решение, пожалуйста, предоставьте его здесь, чтобы мы также могли кодировать таким образом.