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
|
var videoViewer = {
UI : {
loadVideoJS: function() {
if (this.videoJSLoaded) {
return $.when();
} else {
this.videoJSLoaded = true;
var stylePath = OC.filePath('files_videoplayer', 'videojs', 'src/video-js.css');
$('head').append($('<link rel="stylesheet" type="text/css" href="' + stylePath + '"/>'));
var scriptPath = OC.filePath('files_videoplayer', 'videojs', 'src/video.js');
return $.getScript(scriptPath)
}
},
videoJSLoaded: false,
playerTemplate : '<video id="my_video_1" class="video-js vjs-sublime-skin" controls preload="auto" width="100%" height="100%" poster="'+OC.filePath('files_videoplayer', '', 'img')+'/poster.png" data-setup=\'{"techOrder": ["html5"]}\'>' +
'<source type="%type%" src="%src%" />' +
'</video>',
show : function () {
// insert HTML
$('<div id="videoplayer_overlay" style="display:none;"><div id="videoplayer_outer_container"><div id="videoplayer_container"><div id="videoplayer"></div></div></div></div>').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
videojs("my_video_1").ready(function() {
videoViewer.player = this;
// append close button to video element
$("#my_video_1").append('<a class="icon-view-close" id="box-close" href="#"></a>');
// add event to close button
$('#box-close').click(videoViewer.hidePlayer);
// autoplay
videoViewer.player.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;
if ($('#isPublic').length){
// No seek for public videos atm, sorry
videoViewer.location = data.fileList.getDownloadUrl(file, videoViewer.dir);
} else {
videoViewer.location = OC.linkToRemote('webdav') + OC.joinPaths(videoViewer.dir, file);
}
videoViewer.mime = data.$file.attr('data-mime');
videoViewer.showPlayer();
},
showPlayer : function() {
videoViewer.UI.loadVideoJS().then(function() {
videoViewer.UI.show();
});
},
hidePlayer : function() {
videoViewer.player.dispose();
videoViewer.player = false;
videoViewer.UI.hide();
},
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');
}
}
});
|