UNPKG

react-native-streamer

Version:
46 lines (40 loc) 1.27 kB
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 } />; } }