chaptersLoaded: function (evt) { const data = srt(evt.responseText); if (_.isArray(data)) { _.each(data, this.addCue, this); this.drawCues(); } },
export function hasRedundantLevels(levels) { if (!_.isArray(levels)) { return false; } return _.some(levels, function (level) { const key = level.height || level.bitrate || level.bandwidth; const foundDuplicate = this[key]; this[key] = 1; return foundDuplicate; }, {}); }
this.loadItem = function(item, options) { if (!_instream) { return; } if (OS.android && OS.version.major === 2 && OS.version.minor === 3) { this.trigger({ type: ERROR, message: 'Error loading instream: Cannot play instream on Android 2.3' }); return; } // Copy the playlist item passed in and make sure it's formatted as a proper playlist item let playlist = item; if (_.isArray(item)) { _array = item; _arrayOptions = options; item = _array[_arrayIndex]; if (_arrayOptions) { options = _arrayOptions[_arrayIndex]; } } else { playlist = [item]; } const adModel = _instream._adModel; adModel.set('playlist', playlist); _model.set('hideAdsControls', false); // Dispatch playlist item event for ad pods _this.trigger(PLAYLIST_ITEM, { index: _arrayIndex, item: item }); _options = Object.assign({}, _defaultOptions, options); _this.addClickHandler(); adModel.set('skipButton', false); const playPromise = _instream.load(item); const skipoffset = item.skipoffset || _options.skipoffset; if (skipoffset) { _this.setupSkipButton(skipoffset, _options); } return playPromise; };
export function findClosestBandwidth(bandwidths, targetBandwidth) { let closest = null; let smallestDiff = Infinity; let curDiff; if (_.isArray(bandwidths)) { _.forEach(bandwidths, function (cur) { curDiff = Math.abs(cur - targetBandwidth); if (curDiff < smallestDiff) { closest = cur; smallestDiff = curDiff; } }); } return closest; }
this.loadItem = function(item, options) { if (_destroyed || !_inited) { return Promise.reject(new Error('Instream not setup')); } // Copy the playlist item passed in and make sure it's formatted as a proper playlist item let playlist = item; if (_.isArray(item)) { _array = item; _arrayOptions = options || _arrayOptions; item = _array[_arrayIndex]; if (_arrayOptions) { options = _arrayOptions[_arrayIndex]; } } else { playlist = [item]; } const adModel = _adProgram.model; adModel.set('playlist', playlist); _model.set('hideAdsControls', false); // Reset starttime so that if the same ad is replayed by a plugin, it reloads from the start item.starttime = 0; // Dispatch playlist item event for ad pods _this.trigger(PLAYLIST_ITEM, { index: _arrayIndex, item: item }); _options = Object.assign({}, _defaultOptions, options); _this.addClickHandler(); adModel.set('skipButton', false); const playPromise = _adProgram.setActiveItem(_arrayIndex); _backgroundLoadTriggered = false; _skipOffset = item.skipoffset || _options.skipoffset; if (_skipOffset) { _this.setupSkipButton(_skipOffset, _options); } return playPromise; };