我正在使用react-native-ImagePicker
从手机中选择视频。所以我用了下面的代码,
const options = {
title: 'Video Picker',
mediaType: 'video',
storageOptions:{
skipBackup:true,
path:'images'
}
};
这里的问题是我能够录制/选择视频,我无法在<View>
内显示。我搜索了很多网站,几乎花了5个小时,但仍无法找到解决方案。有人可以帮助/澄清我。来自this git_hub网站的代码参考。
答案 0 :(得分:1)
你可以使用this package并将你从图像选择器中检索到的uri传递给它,如下所示:
ImagePicker.launchCamera(options, (response) => {
const uri = response.uri
});
示例:
ImagePicker.launchCamera(options, (response) => {
const uri = response.uri
this.setState({ uri })
});
...
<View style={{ flex: 1 }}>
<Video source={{uri: this.state.uri}}
</View>
答案 1 :(得分:1)
import ImagePicker from 'react-native-image-picker';
import Video from 'react-native-video';
class MyComponent extends Component{
constructor(props){
super(props);
this.state = {
videoSource:'',
};
}
const options2 = {
title: 'Select video',
mediaType: 'video',
path:'video',
quality: 1
};
selectVideo = () => {
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: response.uri };
this.setState({videoSource: source})
}
});
}
render(){
return(
<View>
<Video source={this.state.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} />
<Button small primary onPress={this.selectVideo}>
<Text>Select Video</Text>
</Button>
</View>
);
}
}