this.setup = function () { _preview.setup(_playerElement.querySelector('.jw-preview')); _title.setup(_playerElement.querySelector('.jw-title')); _logo = new Logo(_model); _logo.setup(); _logo.setContainer(_playerElement); _logo.on(LOGO_CLICK, _logoClickHandler); // captions rendering _captionsRenderer.setup(_playerElement.id, _model.get('captions')); // captions should be placed behind controls, and not hidden when controls are hidden _playerElement.insertBefore(_captionsRenderer.element(), _title.element()); // Display Click and Double Click Handling displayClickHandler = clickHandlerHelper(_api, _model, _videoLayer); focusHelper = flagNoFocus(_playerElement); fullscreenHelpers = requestFullscreenHelper(_playerElement, document, _fullscreenChangeHandler); _model.on('change:hideAdsControls', function (model, val) { toggleClass(_playerElement, 'jw-flag-ads-hide-controls', val); }); _model.on('change:scrubbing', function (model, val) { toggleClass(_playerElement, 'jw-flag-dragging', val); }); _model.on('change:playRejected', function (model, val) { toggleClass(_playerElement, 'jw-flag-play-rejected', val); }); // Native fullscreen (coming through from the provider) _model.on(NATIVE_FULLSCREEN, _fullscreenChangeHandler); _model.on(`change:${MEDIA_VISUAL_QUALITY}`, () => { _resizeMedia(); }); const playerViewModel = _model.player; playerViewModel.on('change:errorEvent', _errorHandler); _model.on('change:mediaType', _onMediaTypeChange); _model.change('stretching', onStretchChange); _model.change('flashBlocked', onFlashBlockedChange); const width = _model.get('width'); const height = _model.get('height'); _resizePlayer(width, height); _model.change('aspectratio', onAspectRatioChange); if (_model.get('controls')) { updateContainerStyles(width, height); } else { addClass(_playerElement, 'jw-flag-controls-hidden'); } if (_isIE) { addClass(_playerElement, 'jw-ie'); } const skin = _model.get('skin') || {}; if (skin.name) { replaceClass(_playerElement, /jw-skin-\S+/, 'jw-skin-' + skin.name); } const skinColors = normalizeSkin(skin); handleColorOverrides(_model.get('id'), skinColors); // adds video tag to video layer _model.set('mediaContainer', _videoLayer); _model.set('iFrame', Features.iframe); _model.set('activeTab', activeTab()); _model.set('touchMode', _isMobile && (typeof height === 'string' || height >= CONTROLBAR_ONLY_HEIGHT)); viewsManager.add(this); this.isSetup = true; _model.trigger('viewSetup', _playerElement); const inDOM = document.body.contains(_playerElement); if (inDOM) { viewsManager.observe(_playerElement); } _model.set('inDom', inDOM); };
views.forEach(view => { view.model.set('activeTab', activeTab()); });