Blame view
sources/apps/files_videoviewer/js/viewer.js
3.38 KB
|
42e4f8d60
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
var videoViewer = {
UI : {
playerTemplate : '<video width="%width%" height="%height%" id="media_element" class="video-js vjs-default-skin" controls preload="none">' +
'<source type="%type%" src="%src%" />' +
'</video>',
show : function () {
$('<div id="videoviewer_overlay" style="display:none;"></div><div id="videoviewer_popup"><div id="videoviewer_container"><a class="box-close" id="box-close" href="#"></a><h3>'+escapeHTML(videoViewer.file)+'</h3></div></div>').appendTo('body');
$('#videoviewer_overlay').fadeIn('fast',function(){
$('#videoviewer_popup').fadeIn('fast');
});
$('#box-close').click(videoViewer.hidePlayer);
var size = videoViewer.UI.getSize();
var playerView = videoViewer.UI.playerTemplate.replace(/%width%/g, size.width)
.replace(/%height%/g, size.height)
.replace(/%type%/g, videoViewer.mime)
.replace(/%src%/g, videoViewer.location)
;
$(playerView).prependTo('#videoviewer_container');
},
hide : function() {
$('#videoviewer_popup').fadeOut('fast', function() {
$('#videoviewer_overlay').fadeOut('fast', function() {
$('#videoviewer_popup').remove();
$('#videoviewer_overlay').remove();
});
});
},
getSize : function () {
var size;
if ($(document).width()>'680' && $(document).height()>'520' ){
size = {width: 640, height: 480};
} else {
size = {width: 320, height: 240};
}
return size;
}
},
mime : null,
file : null,
location : null,
player : null,
dir: null,
mimeTypes : [
'video/mp4',
'video/webm',
'video/x-flv',
'application/ogg',
'video/ogg',
'video/quicktime',
'video/x-msvideo',
'video/x-matroska',
'video/x-ms-asf'
],
onView : function(file) {
videoViewer.file = file;
videoViewer.dir = $('#dir').val();
videoViewer.location = videoViewer.getMediaUrl(file);
videoViewer.mime = FileActions.getCurrentMimeType();
OC.addScript('files_videoviewer','mediaelement-and-player', function(){
OC.addScript('files_videoviewer','mep-extra', videoViewer.showPlayer);
});
},
showPlayer : function() {
videoViewer.UI.show();
videoViewer.player = new MediaElementPlayer('#media_element', {
features: ['playpause','progress','current','duration','tracks','volume','fullscreen'],
pluginPath : OC.filePath('files_videoviewer', 'js', ''),
pauseOtherPlayers: false,
enablePluginDebug: false,
plugins: ['flash','silverlight'],
success: function (player, node) {
//set the size (for flash otherwise no video just sound!)
player.setVideoSize($(node).width(), $(node).height());
player.load();
player.pause();
},
error: function (m) {
console.log(m);
}
});
},
hidePlayer : function() {
videoViewer.player = false;
delete videoViewer.player;
videoViewer.UI.hide();
},
getMediaUrl : function(file) {
return fileDownloadPath(videoViewer.dir, file);
},
onKeyDown : function(e) {
if (e.keyCode == 27 && !$('.mejs-container-fullscreen').length && videoViewer.player) {
videoViewer.hidePlayer();
}
},
log : function(message){
console.log(message);
}
};
$(document).ready(function() {
if (typeof FileActions !== 'undefined') {
for (var i = 0; i < videoViewer.mimeTypes.length; ++i) {
var mime = videoViewer.mimeTypes[i];
FileActions.register(mime, 'View', OC.PERMISSION_READ, '', videoViewer.onView);
FileActions.setDefault(mime, 'View');
}
$(document).keydown(videoViewer.onKeyDown);
}
});
|