Blame view

sources/apps/files_videoviewer/mediaelement/src/js/mep-feature-time.js 2.87 KB
03e52840d   Kload   Init
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
  (function($) {
  	
  	// options
  	$.extend(mejs.MepDefaults, {
  		duration: -1,
  		timeAndDurationSeparator: ' <span> | </span> '
  	});
  
  
  	// current and duration 00:00 / 00:00
  	$.extend(MediaElementPlayer.prototype, {
  		buildcurrent: function(player, controls, layers, media) {
  			var t = this;
  			
  			$('<div class="mejs-time">'+
  					'<span class="mejs-currenttime">' + (player.options.alwaysShowHours ? '00:' : '')
  					+ (player.options.showTimecodeFrameCount? '00:00:00':'00:00')+ '</span>'+
  					'</div>')
  					.appendTo(controls);
  			
  			t.currenttime = t.controls.find('.mejs-currenttime');
  
  			media.addEventListener('timeupdate',function() {
  				player.updateCurrent();
  			}, false);
  		},
  
  
  		buildduration: function(player, controls, layers, media) {
  			var t = this;
  			
  			if (controls.children().last().find('.mejs-currenttime').length > 0) {
  				$(t.options.timeAndDurationSeparator +
  					'<span class="mejs-duration">' + 
  						(t.options.duration > 0 ? 
  							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
  				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
  				   		) + 
  					'</span>')
  					.appendTo(controls.find('.mejs-time'));
  			} else {
  
  				// add class to current time
  				controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
  				
  				$('<div class="mejs-time mejs-duration-container">'+
  					'<span class="mejs-duration">' + 
  						(t.options.duration > 0 ? 
  							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
  				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
  				   		) + 
  					'</span>' +
  				'</div>')
  				.appendTo(controls);
  			}
  			
  			t.durationD = t.controls.find('.mejs-duration');
  
  			media.addEventListener('timeupdate',function() {
  				player.updateDuration();
  			}, false);
  		},
  		
  		updateCurrent:  function() {
  			var t = this;
  
  			if (t.currenttime) {
  				t.currenttime.html(mejs.Utility.secondsToTimeCode(t.media.currentTime, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25));
  			}
  		},
  		
  		updateDuration: function() {
  			var t = this;
  
  			//Toggle the long video class if the video is longer than an hour.
  			t.container.toggleClass("mejs-long-video", t.media.duration > 3600);
  			
  			if (t.durationD && (t.options.duration > 0 || t.media.duration)) {
  				t.durationD.html(mejs.Utility.secondsToTimeCode(t.options.duration > 0 ? t.options.duration : t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
  			}		
  		}
  	});
  
  })(mejs.$);