chaptersLoaded: function (evt) {
     const data = srt(evt.responseText);
     if (_.isArray(data)) {
         _.each(data, this.addCue, this);
         this.drawCues();
     }
 },
Example #2
0
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;
    };
Example #4
0
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;
}
Example #5
0
    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;
    };