change video resolution, trigger ended event in player

This commit is contained in:
j 2011-12-20 18:39:26 +05:30
parent cf567e5608
commit 6e0ff7158c
4 changed files with 29 additions and 10 deletions

View file

@ -35,6 +35,7 @@ Ox.VideoEditor = function(options, self) {
position: 0, position: 0,
posterFrame: 0, posterFrame: 0,
posterFrameControls: false, posterFrameControls: false,
resolution: 0,
showAnnotations: false, showAnnotations: false,
showLargeTimeline: true, showLargeTimeline: true,
subtitles: [], subtitles: [],
@ -190,6 +191,7 @@ Ox.VideoEditor = function(options, self) {
paused: true, paused: true,
position: type == 'play' ? self.options.position : self.options[type], position: type == 'play' ? self.options.position : self.options[type],
posterFrame: self.options.posterFrame, posterFrame: self.options.posterFrame,
resolution: self.options.resolution,
showMarkers: true, showMarkers: true,
showMilliseconds: 3, showMilliseconds: 3,
sizeIsLarge: self.options.videoSize == 'large', sizeIsLarge: self.options.videoSize == 'large',
@ -215,6 +217,9 @@ Ox.VideoEditor = function(options, self) {
changePlayer(data); changePlayer(data);
that.triggerEvent('position', data); that.triggerEvent('position', data);
}, },
resolution: function(data) {
that.triggerEvent('resolution', data);
},
size: toggleSize, size: toggleSize,
volume: function(data) { volume: function(data) {
that.triggerEvent('volume', data); that.triggerEvent('volume', data);
@ -326,9 +331,10 @@ Ox.VideoEditor = function(options, self) {
self.resolutions = []; self.resolutions = [];
Ox.forEach(self.options.video, function(url, resolution) { Ox.forEach(self.options.video, function(url, resolution) {
Ox.Log('Video', url, resolution) Ox.Log('Video', url, resolution);
self.resolutions.push( self.resolutions.push(
{id: resolution + '', title: resolution + 'p'} {id: resolution + '', title: resolution + 'p',
checked: self.options.resolution == resolution}
); );
}); });
@ -425,6 +431,9 @@ Ox.VideoEditor = function(options, self) {
title: 'Keyboard Shortcuts', title: 'Keyboard Shortcuts',
width: 256 width: 256
}).open(); }).open();
} else if (Ox.getObjectById(self.resolutions, id)) {
//FIXME: uncheck previous resolution
self.$player[0].options({resolution: id});
} }
} }
}) })
@ -445,13 +454,12 @@ Ox.VideoEditor = function(options, self) {
self.$resolutionSelect = Ox.Select({ self.$resolutionSelect = Ox.Select({
items: [{id: '96', title: '96p'},{id: '240', title: '240p'}],//self.resolutions, items: self.resolutions,
width: 48 width: 48,
}) })
.css({float: 'left'}) .css({float: 'left'})
.bindEvent({ .bindEvent({
change: function() { change: function(data) {
} }
}); });
//.appendTo(self.$videobar); //.appendTo(self.$videobar);

View file

@ -418,12 +418,12 @@ Ox.VideoElement = function(options, self) {
ret = self.video.src; ret = self.video.src;
} else { } else {
self.options.src = Ox.isArray(arguments[0]) ? arguments[0] : [arguments[0]]; self.options.src = Ox.isArray(arguments[0]) ? arguments[0] : [arguments[0]];
self.videos[currentPart].src = self.options.src[currentPart]; self.$video[self.currentPart].src = self.options.src[self.currentPart];
self.videos.forEach(function(video, i) { self.$video.each(function(video, i) {
if (i != currentPart) { if (i != self.currentPart) {
video.src = self.options.src[i]; video.src = self.options.src[i];
} }
}) });
ret = that; ret = that;
} }
return ret; return ret;

View file

@ -30,6 +30,7 @@ Ox.VideoPanelPlayer = function(options, self) {
playInToOut: false, playInToOut: false,
position: 0, position: 0,
poster: '', poster: '',
resolution: 0,
scaleToFill: false, scaleToFill: false,
showAnnotations: true, showAnnotations: true,
showTimeline: true, showTimeline: true,
@ -77,6 +78,7 @@ Ox.VideoPanelPlayer = function(options, self) {
out: self.options.out, out: self.options.out,
paused: true, paused: true,
position: self.options.position, position: self.options.position,
resolution: self.options.resolution,
scaleToFill: self.options.scaleToFill, scaleToFill: self.options.scaleToFill,
subtitles: self.options.subtitles, subtitles: self.options.subtitles,
timeline: self.options.timeline, timeline: self.options.timeline,
@ -103,6 +105,9 @@ Ox.VideoPanelPlayer = function(options, self) {
setPosition(data); setPosition(data);
that.triggerEvent('position', data); that.triggerEvent('position', data);
}, },
resolution: function(data) {
that.triggerEvent('resolution', data);
},
scale: function(data) { scale: function(data) {
that.triggerEvent('scale', data); that.triggerEvent('scale', data);
}, },

View file

@ -1112,6 +1112,7 @@ Ox.VideoPlayer = function(options, self) {
self.iconIsVisible = true; self.iconIsVisible = true;
} }
self.options.rewind && rewind(); self.options.rewind && rewind();
that.triggerEvent('ended');
} }
function find(query) { function find(query) {
@ -1806,6 +1807,9 @@ Ox.VideoPlayer = function(options, self) {
self.$playButton && self.$playButton.options({ self.$playButton && self.$playButton.options({
disabled: true disabled: true
}); });
that.triggerEvent('resolution', {
resolution: self.options.resolution
});
} }
function setSize($element, css, animate, callback) { function setSize($element, css, animate, callback) {
@ -2244,6 +2248,8 @@ Ox.VideoPlayer = function(options, self) {
setPosition(value); setPosition(value);
} else if (key == 'posterFrame') { } else if (key == 'posterFrame') {
self.options.paused && setMarkers(); self.options.paused && setMarkers();
} else if (key == 'resolution') {
setResolution();
} else if (key == 'scaleToFill') { } else if (key == 'scaleToFill') {
toggleScale(); toggleScale();
} }