react-native-video/examples/embed-and-fullscreen/index.ios.js

82 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

'use strict';
import React, {
Component
} from 'react';
import {
AppRegistry,
StyleSheet,
View,
Dimensions,
Text,
Button
} from 'react-native';
import Util from './Utils'
import Video from 'react-native-video';
export default class VideoPlayer extends Component {
constructor(props) {
super(props);
this.onLayout = this.onLayout.bind(this);
}
componentWillMount() {
this.resizeVideoPlayer();
}
render() {
return <View
onLayout={this.onLayout}
style={styles.container}>
<Text>Here's some pre-Text</Text>
<Video
ref={p => { this.videoPlayer = p; }}
source={require('./broadchurch.mp4')}
style={{width: this.state.orientationWidth, height: this.state.orientationHeight }}
controls={true}
/>
<Button title="full screen" onPress={ this.onPress.bind(this) }></Button>
</View>
}
onPress() {
if (this.videoPlayer!=null)
this.videoPlayer.presentFullscreenPlayer();
}
resizeVideoPlayer() {
// Always in 16 /9 aspect ratio
let {width, height} = Dimensions.get('window');
if (Util.isPortrait()) {
this.setState({
orientationWidth: width * 0.8,
orientationHeight: width * 0.8 * 0.56,
});
} else {
this.setState({
orientationHeight: height * 0.8,
orientationWidth: height * 0.8 * 1.77
});
}
}
onLayout(e) {
console.log('on layout called');
this.resizeVideoPlayer();
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'white',
},
});
AppRegistry.registerComponent('VideoPlayer', () => VideoPlayer);