react-native-streamer
Version:
A react native framework for live player
46 lines (40 loc) • 1.27 kB
JavaScript
import React, { Component } from 'react';
import {
View,
Platform,
NativeModules,
NativeEventEmitter,
DeviceEventEmitter,
requireNativeComponent,
} from 'react-native';
import PropTypes from 'prop-types';
const KSYPlayer = requireNativeComponent('KSYPlayer', Player);
const { KSYStreamerModule } = NativeModules;
const streamerEmitter = new NativeEventEmitter(KSYStreamerModule);
export default class Player extends Component {
static propTypes = {
url: PropTypes.string.isRequired,
onPlayerInfo: PropTypes.func,
...View.propTypes,
}
static defaultProps = {
onPlayerInfo: () => {},
}
componentWillMount() {
const { onPlayerInfo } = this.props;
if (Platform.OS === 'ios') {
if (onPlayerInfo) { this.subscription = streamerEmitter.addListener('onIOSPlayerInfo', onPlayerInfo); }
} else if (onPlayerInfo) { this.subscription = DeviceEventEmitter.addListener('onAndroidInfo', onPlayerInfo); }
}
componentWillUnmount() {
if (Platform.OS === 'ios') {
this.subscription.remove();
} else {
this.subscription.remove();
}
}
render() {
return <KSYPlayer {...this.props }
/>;
}
}