var videoViewer = {
UI : {
playerTemplate : '',
show : function () {
// insert HTML
$('
').appendTo('body');
var playerView = videoViewer.UI.playerTemplate
.replace(/%type%/g, escapeHTML(videoViewer.mime))
.replace(/%src%/g, escapeHTML(videoViewer.location))
;
$(playerView).prependTo('#videoplayer');
// add event to overlay
$("#videoplayer_overlay").on("click", function(e) {
if (e.target != this) {
return;
} else {
videoViewer.hidePlayer();
}
});
// show elements
$('#videoplayer_overlay').fadeIn('fast');
// initialize player
var vjsPlayer = videojs("my_video_1");
// append close button to video element
$("#my_video_1").append('');
// add event to close button
$('#box-close').click(videoViewer.hidePlayer);
// autoplay
vjsPlayer.play();
},
hide : function() {
$('#videoplayer_overlay').fadeOut('fast', function() {
$('#videoplayer_overlay').remove();
});
}
},
mime : null,
file : null,
location : null,
player : null,
mimeTypes : [
'video/mp4',
'video/webm',
'video/x-flv',
'video/ogg',
'video/quicktime'
],
onView : function(file, data) {
videoViewer.file = file;
videoViewer.dir = data.dir;
videoViewer.location = data.fileList.getDownloadUrl(file, videoViewer.dir);
videoViewer.mime = data.$file.attr('data-mime');
videoViewer.showPlayer();
},
showPlayer : function() {
videoViewer.UI.show();
},
hidePlayer : function() {
videoViewer.player = false;
delete videoViewer.player;
videoViewer.UI.hide();
// force close socket
$('video').each(function() {
$($(this)[0]).attr('src', '');
});
},
log : function(message){
console.log(message);
}
};
$(document).ready(function(){
// add event to ESC key
$(document).keyup(function(e) {
if (e.keyCode === 27) {
videoViewer.hidePlayer();
}
});
if (typeof FileActions !== 'undefined') {
for (var i = 0; i < videoViewer.mimeTypes.length; ++i) {
var mime = videoViewer.mimeTypes[i];
OCA.Files.fileActions.register(mime, 'View', OC.PERMISSION_READ, '', videoViewer.onView);
OCA.Files.fileActions.setDefault(mime, 'View');
}
}
});