From 0642c1095125425176818911630ed5e56e28213a Mon Sep 17 00:00:00 2001 From: rolux Date: Sun, 15 May 2011 10:35:00 +0200 Subject: [PATCH] adding missing files (video demo) --- demos/video/js/video.js | 10 +- demos/video/png/poster.png | Bin 0 -> 24516 bytes source/Ox.UI/js/Video/Ox.VideoPlayer.js | 307 ++++++++++++------------ 3 files changed, 155 insertions(+), 162 deletions(-) create mode 100644 demos/video/png/poster.png diff --git a/demos/video/js/video.js b/demos/video/js/video.js index 0af32b8d..0de7ac3e 100644 --- a/demos/video/js/video.js +++ b/demos/video/js/video.js @@ -3,7 +3,7 @@ Ox.load('UI', { theme: 'modern' }, function() { var id = '0393109', - poster = 'http://next.0xdb.org/' + id + '/poster.jpg', + poster = 'png/poster.png', timeline = 'http://next.0xdb.org/' + id + '/timeline.16.png', url = 'http://next.0xdb.org/' + id + '/96p.webm', videoSize = getVideoSize(), @@ -32,7 +32,7 @@ Ox.load('UI', { }), Ox.VideoPlayer({ enableKeyboard: true, - height: 192, + height: videoSize.height, 'in': 3128.725, //keepIconVisible: true, out: 3130.725, @@ -42,7 +42,7 @@ Ox.load('UI', { showIcon: true, timeline: timeline, video: url + '?' + + Ox.random(1000000), - width: 360 + width: videoSize.width }) .css({ left: '16px', @@ -51,7 +51,7 @@ Ox.load('UI', { Ox.VideoPlayer({ controls: ['play', 'playInToOut', 'mute', 'size', 'space', 'position'], externalControls: true, - height: videoSize.height, + height: 192, 'in': 3128.725, out: 3130.725, paused: true, @@ -59,7 +59,7 @@ Ox.load('UI', { subtitles: 'srt/' + id + '.srt', timeline: timeline, video: url + '?' + + Ox.random(1000000), - width: videoSize.width + width: 360 }) .css({ left: '16px', diff --git a/demos/video/png/poster.png b/demos/video/png/poster.png new file mode 100644 index 0000000000000000000000000000000000000000..9abcc6631b281688207890fc192ec72b8f5c3679 GIT binary patch literal 24516 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 playerRatio, + width, height; + if (self.options.scaleToFill) { + width = videoIsWider ? playerHeight * videoRatio : playerWidth; + height = videoIsWider ? playerHeight : playerWidth / videoRatio; + } else { + width = videoIsWider ? playerWidth : playerHeight * videoRatio; + height = videoIsWider ? playerWidth / videoRatio : playerHeight; + } + width = Math.round(width); + height = Math.round(height); + css = { + width: width + 'px', + height: height + 'px', + marginLeft: parseInt((playerWidth - width) / 2), + marginTop: parseInt((playerHeight - height) / 2) + }; + } else if (element == 'progress') { + css = { + width: self.timelineImageWidth + 'px', + marginLeft: -self.timelineImageWidth + 'px' + }; + } else if (element == 'subtitle') { + css = { + bottom: parseInt(self.height / 16) + 'px', + width: self.width + 'px', + fontSize: parseInt(self.height / 20) + 'px', + WebkitTextStroke: (self.height / 1000) + 'px rgb(0, 0, 0)' + }; + } else if (element == 'space' || element == 'timeline') { + css = { + width: self.timelineWidth + 'px' + }; + } else if (element == 'timelineImage' || element == 'timelineImages') { + css = { + width: self.timelineImageWidth + 'px' + }; + } else if (element == 'timelineInterface') { + css = { + width: self.timelineWidth + 'px', + marginLeft: -self.timelineWidth + 'px' + }; + } else if (element == 'videoContainer') { + css = { + width: self.width + 'px', + height: self.height + 'px' + }; + } + return css; + } + function getPosition(e) { // fixme: no offsetX in firefox??? if ($.browser.mozilla) { @@ -769,8 +884,7 @@ Ox.VideoPlayer = function(options, self) { } function dragTrack(e) { - setPosition(getPosition(e)); - self.video.currentTime = self.options.position; + setPosition(getPosition(e), true); if (self.dragTimeout) { clearTimeout(self.dragTimeout); self.dragTimeout = 0; @@ -782,8 +896,7 @@ Ox.VideoPlayer = function(options, self) { } function mousedownTrack(e) { - setPosition(getPosition(e)); - self.video.currentTime = self.options.position; + setPosition(getPosition(e), true); } function mouseleaveTrack(e) { @@ -812,26 +925,20 @@ Ox.VideoPlayer = function(options, self) { (self.options.playInToOut || self.playInToOut) && self.options.position >= self.options.out ) { - ///* - togglePaused(); - setPosition(self.options.out); - //self.video.currentTime = self.options.position; - self.$playButton && self.$playButton.toggleTitle(); - //*/ + togglePaused(true); + setPosition(self.options.out/*, true*/); //ended(); self.playInToOut = false; } else { - setPosition(); + setPosition(self.options.position); } } function playInToOut() { self.playInToOut = true; - setPosition(self.options['in']); - self.video.currentTime = self.options['in']; + setPosition(self.options['in'], true); if (self.options.paused) { - togglePaused(); - self.$playButton && self.$playButton.toggleTitle(); + togglePaused(true); } } @@ -862,13 +969,14 @@ Ox.VideoPlayer = function(options, self) { }, 250); } - function setPosition(position) { - if (!Ox.isUndefined(position)) { - self.options.position = Ox.limit(position, self['in'], self['out']); - } + function setPosition(position, setVideo) { + position = Ox.limit(position, self['in'], self['out']); self.options.position = Math.round( - self.options.position * self.options.fps + position * self.options.fps ) / self.options.fps; + if (setVideo && self.loaded) { + self.video.currentTime = self.options.position; + } if (self.iconIsVisible) { self.$playIcon.animate({ opacity: 0 @@ -886,119 +994,6 @@ Ox.VideoPlayer = function(options, self) { self.$position && self.$position.html(formatPosition()); } - function getCSS(element) { - var css; - if (element == 'controls' || element == 'titlebar') { - css = { - width: self.width + 'px' - }; - } else if (element == 'loadingIcon') { - css = { - left: self.iconLeft + 'px', - top: self.iconTop + 'px', - width: self.iconSize + 'px', - height: self.iconSize + 'px' - }; - } else if (element == 'logo') { - var logoHeight = Math.round(self.height / 10); - self.logoMargin = Math.round(self.height / 20); - css = { - left: self.logoMargin + 'px', - top: self.logoMargin + 'px', - height: logoHeight + 'px', - }; - } else if (element == 'player') { - css = Ox.extend({ - width: self.width + 'px', - height: (self.options.fullscreen - ? window.innerHeight - : self.height + ( - self.options.externalControls - ? (!!self.options.controls.length + !!self.options.title) * self.barHeight - : 0)) + 'px' - }, self.options.fullscreen ? { - left: 0, - top: 0 - } : {}, self.exitFullscreen ? { - left: self.absoluteOffset.left, - top: self.absoluteOffset.top - } : {}); - } else if (element == 'playIcon') { - var playIconPadding = Math.round(self.iconSize * 1/8), - playIconSize = self.iconSize - 2 * playIconPadding - 4; - css = { - left: self.iconLeft + 'px', - top: self.iconTop + 'px', - width: playIconSize + 'px', - height: playIconSize + 'px', - padding: playIconPadding + 'px', - borderRadius: Math.round(self.iconSize / 2) + 'px' - }; - } else if (element == 'positionMarker') { - var position = self.options.duration ? - (self.options.position - self['in']) / self.options.duration : 0; - css = { - marginLeft: position * self.timelineImageWidth - - self.timelineImageWidth - 8 + 'px', - }; - } else if (element == 'poster' || element == 'video') { - var playerWidth = self.width, - playerHeight = self.height, - playerRatio = playerWidth / playerHeight, - videoWidth = self.video.videoWidth, - videoHeight = self.video.videoHeight, - videoRatio = videoWidth / videoHeight, - videoIsWider = videoRatio > playerRatio, - width, height; - if (self.options.scaleToFill) { - width = videoIsWider ? playerHeight * videoRatio : playerWidth; - height = videoIsWider ? playerHeight : playerWidth / videoRatio; - } else { - width = videoIsWider ? playerWidth : playerHeight * videoRatio; - height = videoIsWider ? playerWidth / videoRatio : playerHeight; - } - width = Math.round(width); - height = Math.round(height); - css = { - width: width + 'px', - height: height + 'px', - marginLeft: parseInt((playerWidth - width) / 2), - marginTop: parseInt((playerHeight - height) / 2) - }; - } else if (element == 'progress') { - css = { - width: self.timelineImageWidth + 'px', - marginLeft: -self.timelineImageWidth + 'px' - }; - } else if (element == 'subtitle') { - css = { - bottom: parseInt(self.height / 16) + 'px', - width: self.width + 'px', - fontSize: parseInt(self.height / 20) + 'px', - WebkitTextStroke: (self.height / 1000) + 'px rgb(0, 0, 0)' - }; - } else if (element == 'space' || element == 'timeline') { - css = { - width: self.timelineWidth + 'px' - }; - } else if (element == 'timelineImage' || element == 'timelineImages') { - css = { - width: self.timelineImageWidth + 'px' - }; - } else if (element == 'timelineInterface') { - css = { - width: self.timelineWidth + 'px', - marginLeft: -self.timelineWidth + 'px' - }; - } else if (element == 'videoContainer') { - css = { - width: self.width + 'px', - height: self.height + 'px' - }; - } - return css; - } - function setSizes(callback) { var ms = callback ? 250 : 0; self.width = self.options.fullscreen ? window.innerWidth : self.options.width; @@ -1087,14 +1082,10 @@ Ox.VideoPlayer = function(options, self) { function submitPositionInput() { self.$positionInput.hide(); self.$position.html('').show(); - setPosition(parsePositionInput(self.$positionInput.options('value'))); - if (self.loaded) { - self.video.currentTime = self.options.position; - } + setPosition(parsePositionInput(self.$positionInput.options('value')), true); if (self.wasPlaying) { - togglePaused(); + togglePaused(true); self.video.play(); - self.$playButton && self.$playButton.toggleTitle(); self.wasPlaying = false; } } @@ -1144,7 +1135,7 @@ Ox.VideoPlayer = function(options, self) { self.video.muted = self.options.muted; } - function togglePaused() { + function togglePaused(togglePlayButton) { self.options.paused = !self.options.paused; self.$timeline && self.$positionMarkerRing.css({ borderColor: 'rgba(255, 255, 255, ' + (self.options.paused ? 0.5 : 1) + ')' @@ -1160,8 +1151,7 @@ Ox.VideoPlayer = function(options, self) { } } else { if (self.options.playInToOut && self.options.position > self.options.out - self.secondsPerFrame) { - setPosition(self.options['in']); - self.video.currentTime = self.options.position; + setPosition(self.options['in'], true); } self.video.play(); self.playInterval = setInterval(playing, self.millisecondsPerFrame); @@ -1171,6 +1161,9 @@ Ox.VideoPlayer = function(options, self) { }, 250, togglePlayIcon); } } + if (togglePlayButton && self.$playButton) { + self.$playButton.toggleTitle(); + } } function togglePlayIcon() { @@ -1203,9 +1196,9 @@ Ox.VideoPlayer = function(options, self) { toggleMuted(); self.$muteButton && self.$muteButton.toggleTitle(); } else if (key == 'paused') { - togglePaused(); + togglePaused(true); } else if (key == 'position') { - setPosition(); + setPosition(value); } else if (key == 'scaleToFill') { self.$video.css(getVideoCSS()); }