Длительность видео по запросу "родной-имидж-сборщик"
Я использую 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>
);}
Заранее спасибо.
1 ответ
Если вы хотите записать видео 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()}
/>`
Я надеюсь это тебе поможет.