PanoramaViewer-omeka-module/asset/vendor/pannellum/videojs-pannellum-plugin.js

56 lines
1.7 KiB
JavaScript

/*
* Video.js plugin for Pannellum
* Copyright (c) 2015-2018 Matthew Petroff
* MIT License
*/
(function(document, videojs, pannellum) {
'use strict';
var registerPlugin = videojs.registerPlugin || videojs.plugin; // Use registerPlugin for Video.js >= 6
registerPlugin('pannellum', function(config) {
// Create Pannellum instance
var player = this;
var container = player.el();
var vid = container.getElementsByTagName('video')[0],
pnlmContainer = document.createElement('div');
pnlmContainer.style.zIndex = '0';
config = config || {};
config.type = 'equirectangular';
config.dynamic = true;
config.showZoomCtrl = false;
config.showFullscreenCtrl = false;
config.autoLoad = true;
config.panorama = vid;
pnlmContainer.style.visibility = 'hidden';
player.pnlmViewer = pannellum.viewer(pnlmContainer, config);
container.insertBefore(pnlmContainer, container.firstChild);
vid.style.display = 'none';
// Handle update settings
player.on('play', function() {
if (vid.readyState > 1)
player.pnlmViewer.setUpdate(true);
});
player.on('canplay', function() {
if (!player.paused())
player.pnlmViewer.setUpdate(true);
});
player.on('pause', function() {
player.pnlmViewer.setUpdate(false);
});
player.on('loadeddata', function() {
pnlmContainer.style.visibility = 'visible';
});
player.on('seeking', function() {
if (player.paused())
player.pnlmViewer.setUpdate(true);
});
player.on('seeked', function() {
if (player.paused())
player.pnlmViewer.setUpdate(false);
});
});
})(document, videojs, pannellum);