UNPKG

npaw-plugin-adapters

Version:
289 lines (251 loc) 7.08 kB
export default class BitmovinReactNativeAdapter { onSourceLoaded(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onSourceLoaded:', e); this.firePlayerLog('onSourceLoaded', e); if (e && e.source && e.source.duration) { this.duration = e.source.duration; } } onAudioChanged(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onAudioChanged:', e); this.firePlayerLog('onAudioChanged', e); } onVideoDownloadQualityChanged(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onVideoDownloadQualityChanged:', e); this.firePlayerLog('onVideoDownloadQualityChanged', e); } onVideoPlaybackQualityChanged(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onVideoPlaybackQualityChanged:', e); this.firePlayerLog('onVideoPlaybackQualityChanged', e); if(!e){ return; } if (e.width) { this.width = e.width; } if (e.height) { this.height = e.height; } if (e.bitrate) { this.bitrate = e.bitrate; } if (e && e.newVideoQuality) { this.width = e.newVideoQuality.width; this.height = e.newVideoQuality.height; this.bitrate = e.newVideoQuality.bitrate; } } onReady(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onReady:', e); this.firePlayerLog('onReady', e); } onPlay(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPlay:', e); this.firePlayerLog('onPlay', e); var triggeredEvents = '_onPlay'; if (e && e.name) { triggeredEvents = e.name; } if (!this.flags.isStarted) { this.fireStart({}, triggeredEvents); } if(this.flags.isStarted){ this.fireResume({}, triggeredEvents); } } onPlaying(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPlaying:', e); this.firePlayerLog('onPlaying', e); var triggeredEvents = '_onPlay'; if (e && e.name) { triggeredEvents = e.name; } if (!this.flags.isJoined) { this.fireJoin({}, triggeredEvents); } if(this.flags.isStarted){ this.fireResume({}, triggeredEvents); } } onTimeChanged(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onTimeChanged:', e); this.firePlayerLog('onTimeChanged', e); if (!e) { return; } if (e.currentTime) { this.playhead = e.currentTime; } else if(e.time) { this.playhead = e.currentTime; } this.playhead = e.currentTime; } onPaused(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPaused:', e); this.firePlayerLog('onPaused', e); var triggeredEvents = '_onPaused'; if (e && e.name) { triggeredEvents = e.name; } this.firePause({}, triggeredEvents); } onSeek(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onSeek:', e); this.firePlayerLog('onSeek', e); var triggeredEvents = '_onSeek'; if (e && e.name) { triggeredEvents = e.name; } this.isSeeking = true; this.fireSeekBegin({}, false, triggeredEvents); } onSeeked(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onSeeked:', e); this.firePlayerLog('onSeeked', e); var triggeredEvents = '_onSeeked'; if (e && e.name) { triggeredEvents = e.name; } if (this.seekIntervalId) { clearInterval(this.seekIntervalId); } this.isSeeking = false; this.seekIntervalId = setInterval(() => { if (!this.isSeeking) { this.fireSeekEnd({}, triggeredEvents); clearInterval(this.seekIntervalId); this.seekIntervalId = null; } }, 500); } onPlaybackFinished(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPlaybackFinished:', e); this.firePlayerLog('onPlaybackFinished', e); var triggeredEvents = '_onPlaybackFinished'; if (e && e.name) { triggeredEvents = e.name; } this.fireStop({}, triggeredEvents); } onStallStarted(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onStallStarted:', e); this.firePlayerLog('onStallStarted', e); var triggeredEvents = '_onStallStarted'; if (e && e.name) { triggeredEvents = e.name; } this.fireBufferBegin({}, false, triggeredEvents) } onStallEnded(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onStallEnded:', e); this.firePlayerLog('onStallEnded', e); var triggeredEvents = '_onStallEnded'; if (e && e.name) { triggeredEvents = e.name; } if(this.chronos.buffer.getDeltaTime(false) < 50){ this.cancelBuffer(); } else{ this.fireBufferEnd({}, triggeredEvents); } } onPlayerWarning(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPlayerWarning:', e); this.firePlayerLog('onPlayerWarning', e); var code = null; var message = null; if (e) { if (e.code) { code = e.code; } if (e.message) { message = e.message; } } this.fireError(code, message); } onPlayerError(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onPlayerError:', e); this.firePlayerLog('onPlayerError', e); var code = null; var message = null; if (e) { if (e.code) { code = e.code; } if (e.message) { message = e.message; } } this.fireError(code, message); } onSourceError(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onSourceError:', e); this.firePlayerLog('onSourceError', e); var code = null; var message = null; if (e) { if (e.code) { code = e.code; } if (e.message) { message = e.message; } } this.fireError(code, message); } onSourceWarning(e) { this.getLog().verbose('BitmovinReactNativeAdapter', 'onSourceWarning:', e); this.firePlayerLog('onSourceWarning', e); var code = null; var message = null; if (e) { if (e.code) { code = e.code; } if (e.message) { message = e.message; } } this.fireError(code, message); } getBitrate() { return this.bitrate; } onDestroy(e) { this.fireStop(); } getVersion() { return '7.0.2-bitmovin-react-native-jsclass'; } getPlayhead() { return this.playhead; } getIsLive() { return !this.duration; } getDuration() { return this.duration; } getResource() { return (this.player && this.player.source && this.player.source.config) ? this.player.source.config.url : null; } getTitle() { return (this.player && this.player.source && this.player.source.config) ? this.player.source.config.title : null; } setPlatform(platform) { this.reactPlatform = platform; } getRendition() { if (this.width && this.height) { if (this.bitrate) { return this.getNpawUtils().buildRenditionString(this.width, this.height, this.bitrate); } return this.getNpawUtils().buildRenditionString(this.width, this.height); } } getPlayerName() { return 'Bitmovin React Native'; } }