UNPKG

@lahzenegar/video-react

Version:

Video-React is a web video player built from the ground up for an HTML5 world using React library.

224 lines (213 loc) 6.42 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); exports.player = player; var _video = require('../actions/video'); var _player = require('../actions/player'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var initialState = { currentSrc: null, duration: 0, currentTime: 0, seekingTime: 0, buffered: null, waiting: false, seeking: false, paused: true, autoPaused: false, ended: false, playbackRate: 1, muted: false, volume: 1, isLive: false, hasDVR: false, liveTime: 0, latency: 0, activeTrack: -1, realActiveTrack: -1, switchingTrack: false, tracks: [], readyState: 0, networkState: 0, videoWidth: 0, videoHeight: 0, hasStarted: false, userActivity: true, isActive: false, isFullscreen: false, hls: null, secondsPlayed: 0, percentPlayed: 0, waitingTime: 0, delayToStartPlaying: 0, waitingDuration: 0, audioOnly: false, mediaDuration: 0, playOffset: 0, controlsVisibility: true, contentLoading: true }; function player() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments[1]; switch (action.type) { case _player.USER_ACTIVATE: return (0, _extends3.default)({}, state, { userActivity: action.activity }); case _player.PLAYER_ACTIVATE: return (0, _extends3.default)({}, state, { isActive: action.activity }); case _player.FULLSCREEN_CHANGE: return (0, _extends3.default)({}, state, { isFullscreen: !!action.isFullscreen }); case _player.AUDIO_ONLY_CHANGE: return (0, _extends3.default)({}, state, { audioOnly: action.audioOnly }); case _video.AD_START: return (0, _extends3.default)({}, state, { ads: true }); case _video.AD_ENDED: return (0, _extends3.default)({}, state, { ads: false }); case _video.CONTENT_LOADING_STARTED: return (0, _extends3.default)({}, state, { contentLoading: true }); case _video.CONTENT_LOADING_ENDED: return (0, _extends3.default)({}, state, { contentLoading: false }); case _video.AD_ERROR: case _video.ALL_ADS_COMPLETED: return (0, _extends3.default)({}, state); case _video.SEEKING_TIME: return (0, _extends3.default)({}, state, { seekingTime: action.time }); case _video.END_SEEKING: return (0, _extends3.default)({}, state, { seekingTime: 0 }); case _video.LOAD_START: return (0, _extends3.default)({}, state, action.videoProps, { hasStarted: false, ended: false }); case _video.CAN_PLAY_THROUGH: var newStateCanPlayThrough = (0, _extends3.default)({}, state, action.videoProps); if (action.videoProps.paused === true) { // newStateCanPlayThrough.hasStarted = true; newStateCanPlayThrough.waiting = false; } return newStateCanPlayThrough; case _video.CAN_PLAY: var newStateCanPlay = (0, _extends3.default)({}, state, action.videoProps, { waitingDuration: action.waitingDuration, delayToStartPlaying: action.delayToStartPlaying }); if (action.videoProps.paused === true) { // newStateCanPlay.hasStarted = true; newStateCanPlay.waiting = false; } return newStateCanPlay; case _video.WAITING: return (0, _extends3.default)({}, state, action.videoProps, { waiting: true }); case _video.PLAYING: return (0, _extends3.default)({}, state, action.videoProps, { waiting: false, hasStarted: true }); case _video.PLAY: return (0, _extends3.default)({}, state, action.videoProps, { ended: false, paused: false, autoPaused: false, waiting: false // hasStarted: true, }); case _video.PAUSE: return (0, _extends3.default)({}, state, action.videoProps, { paused: true }); case _video.END: return (0, _extends3.default)({}, state, action.videoProps, { ended: true }); case _video.SEEKING: return (0, _extends3.default)({}, state, action.videoProps, { seeking: true }); case _video.SEEKED: return (0, _extends3.default)({}, state, action.videoProps, { seeking: false }); case _video.ERROR: return (0, _extends3.default)({}, state, action.videoProps, { error: 'UNKNOWN ERROR', ended: true }); case _video.MEDIA_STATE_CHANGE: return (0, _extends3.default)({}, state, { hasDVR: action.hasDVR, isLive: action.isLive, mediaDuration: action.mediaDuration, playOffset: action.playOffset }); case _video.MEDIA_LATENCY_CHANGE: return (0, _extends3.default)({}, state, { liveTime: action.liveTime, latency: action.latency }); case _video.LOADED_LEVELS: return (0, _extends3.default)({}, state, { tracks: action.tracks }); case _video.MANIFEST_PARSED: return (0, _extends3.default)({}, state, { hls: action.hls }); case _video.TRACK_CHANGE: return (0, _extends3.default)({}, state, { activeTrack: action.activeTrack }); case _video.REAL_TRACK_CHANGE: return (0, _extends3.default)({}, state, { realActiveTrack: action.realActiveTrack, switchingTrack: action.switchingTrack }); case _video.TIME_UPDATE: return (0, _extends3.default)({}, state, action.videoProps, { secondsPlayed: action.secondsPlayed, percentPlayed: action.percentPlayed, waitingTime: action.waitingTime, waiting: false }); case _video.DURATION_CHANGE: case _video.VOLUME_CHANGE: case _video.PROGRESS_CHANGE: case _video.RATE_CHANGE: return (0, _extends3.default)({}, state, action.videoProps); case _video.SUSPEND: case _video.ABORT: case _video.EMPTIED: case _video.STALLED: case _video.LOADED_META_DATA: case _video.LOADED_DATA: case _video.RESIZE: return (0, _extends3.default)({}, state, action.videoProps); default: return state; } } exports.default = player;