remove unused widget
This commit is contained in:
parent
768d4fe160
commit
24e6330265
2 changed files with 2 additions and 430 deletions
|
@ -1,430 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
/*@
|
||||
Ox.VideoEditorPlayer <f> VideoEditorPlayer Object
|
||||
options <o> Options object
|
||||
self <o> Shared private variable
|
||||
([options[, self]]) -> <o:Ox.Element> VideoEditorPlayer Object
|
||||
change <!> change
|
||||
playing <!> playing
|
||||
set <!> set
|
||||
togglesize <!> togglesize
|
||||
@*/
|
||||
|
||||
Ox.VideoEditorPlayer = function(options, self) {
|
||||
|
||||
self = self || {};
|
||||
var that = Ox.Element({}, self)
|
||||
.defaults({
|
||||
duration: 0,
|
||||
find: '',
|
||||
height: 0,
|
||||
points: [0, 0],
|
||||
position: 0,
|
||||
posterFrame: 0,
|
||||
size: 'small',
|
||||
subtitles: [],
|
||||
type: 'play',
|
||||
url: '',
|
||||
width: 0
|
||||
})
|
||||
.options(options || {})
|
||||
.update({
|
||||
height: setHeight,
|
||||
points: setMarkers,
|
||||
position: setPosition,
|
||||
posterFrame: setMarkers,
|
||||
width: setWidth
|
||||
})
|
||||
.addClass('OxVideoPlayer')
|
||||
.css({
|
||||
height: (self.options.height + 16) + 'px',
|
||||
width: self.options.width + 'px'
|
||||
});
|
||||
|
||||
self.controlsHeight = 16;
|
||||
|
||||
if (self.options.type == 'play') {
|
||||
self.$video = Ox.VideoElement({
|
||||
height: self.options.height,
|
||||
paused: true,
|
||||
points: self.options.points,
|
||||
position: self.options.position,
|
||||
url: self.options.url,
|
||||
width: self.options.width
|
||||
})
|
||||
.bindEvent({
|
||||
paused: paused,
|
||||
playing: playing
|
||||
})
|
||||
.appendTo(that);
|
||||
self.video = self.$video[0];
|
||||
} else {
|
||||
self.$video = $('<img>')
|
||||
.css({
|
||||
height: self.options.height + 'px',
|
||||
width: self.options.width + 'px'
|
||||
})
|
||||
.appendTo(that);
|
||||
}
|
||||
|
||||
self.$subtitle = $('<div>')
|
||||
.addClass('OxSubtitle')
|
||||
.appendTo(that);
|
||||
|
||||
setSubtitleSize();
|
||||
|
||||
self.$markerFrame = $('<div>')
|
||||
.addClass('OxMarkerFrame')
|
||||
.append(
|
||||
$('<div>')
|
||||
.addClass('OxFrame')
|
||||
.css({
|
||||
width: Math.floor((self.options.width - self.options.height) / 2) + 'px',
|
||||
height: self.options.height + 'px'
|
||||
})
|
||||
)
|
||||
.append(
|
||||
$('<div>')
|
||||
.addClass('OxPoster')
|
||||
.css({
|
||||
width: (self.options.height - 2) + 'px',
|
||||
height: (self.options.height - 2) + 'px'
|
||||
})
|
||||
)
|
||||
.append(
|
||||
$('<div>')
|
||||
.addClass('OxFrame')
|
||||
.css({
|
||||
width: Math.ceil((self.options.width - self.options.height) / 2) + 'px',
|
||||
height: self.options.height + 'px'
|
||||
})
|
||||
)
|
||||
.hide()
|
||||
.appendTo(that);
|
||||
|
||||
self.$markerPoint = {};
|
||||
['in', 'out'].forEach(function(point, i) {
|
||||
self.$markerPoint[point] = {};
|
||||
['top', 'bottom'].forEach(function(edge) {
|
||||
var titleCase = Ox.toTitleCase(point) + Ox.toTitleCase(edge);
|
||||
self.$markerPoint[point][edge] = $('<img>')
|
||||
.addClass('OxMarkerPoint OxMarker' + titleCase)
|
||||
.attr({
|
||||
src: Ox.UI.PATH + 'png/videoMarker' + titleCase + '.png'
|
||||
})
|
||||
.hide()
|
||||
.appendTo(that);
|
||||
if (self.options.points[i] == self.options.position) {
|
||||
self.$markerPoint[point][edge].show();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
self.$controls = Ox.Bar({
|
||||
size: self.controlsHeight
|
||||
})
|
||||
.css({
|
||||
marginTop: '-2px'
|
||||
})
|
||||
.appendTo(that);
|
||||
|
||||
if (self.options.type == 'play') {
|
||||
// fixme: $buttonPlay etc. ?
|
||||
self.$playButton = Ox.Button({
|
||||
id: self.options.id + 'Play',
|
||||
tooltip: ['Play', 'Pause'],
|
||||
type: 'image',
|
||||
values: ['play', 'pause']
|
||||
})
|
||||
.bindEvent('click', togglePlay)
|
||||
.appendTo(self.$controls);
|
||||
self.$playInToOutButton = Ox.Button({
|
||||
id: self.options.id + 'PlayInToOut',
|
||||
title: 'PlayInToOut',
|
||||
tooltip: Ox._('Play In to Out'),
|
||||
type: 'image'
|
||||
})
|
||||
.bindEvent('click', function() {
|
||||
that.playInToOut();
|
||||
})
|
||||
.appendTo(self.$controls);
|
||||
self.$muteButton = Ox.Button({
|
||||
id: self.options.id + 'Mute',
|
||||
tooltip: ['Mute', 'Unmute'],
|
||||
type: 'image',
|
||||
values: ['mute', 'unmute']
|
||||
})
|
||||
.bindEvent('click', toggleMute)
|
||||
.appendTo(self.$controls);
|
||||
self.$sizeButton = Ox.Button({
|
||||
id: self.options.id + 'Size',
|
||||
tooltip: ['Larger', 'Smaller'],
|
||||
type: 'image',
|
||||
value: self.options.size,
|
||||
values: [
|
||||
{id: 'small', title: 'grow'},
|
||||
{id: 'large', title: 'shrink'}
|
||||
]
|
||||
})
|
||||
.bindEvent('click', toggleSize)
|
||||
.appendTo(self.$controls);
|
||||
} else {
|
||||
self.$goToPointButton = Ox.Button({
|
||||
id: self.options.id + 'GoTo' + Ox.toTitleCase(self.options.type),
|
||||
title: 'GoTo' + Ox.toTitleCase(self.options.type),
|
||||
tooltip: Ox._('Go to ' + Ox.toTitleCase(self.options.type) + ' Point'),
|
||||
type: 'image'
|
||||
})
|
||||
.bindEvent('click', goToPoint)
|
||||
.appendTo(self.$controls);
|
||||
self.$setPointButton = Ox.Button({
|
||||
id: self.options.id + 'Set' + Ox.toTitleCase(self.options.type),
|
||||
title: 'Set' + Ox.toTitleCase(self.options.type),
|
||||
tooltip: Ox._('Set ' + Ox.toTitleCase(self.options.type) + ' Point'),
|
||||
type: 'image'
|
||||
})
|
||||
.bindEvent('click', setPoint)
|
||||
.appendTo(self.$controls);
|
||||
}
|
||||
|
||||
self.$positionInput = Ox.TimeInput({
|
||||
milliseconds: true,
|
||||
seconds: true,
|
||||
value: Ox.formatDuration(self.options.position, 3)
|
||||
})
|
||||
.css({
|
||||
float: 'right'
|
||||
})
|
||||
.appendTo(self.$controls)
|
||||
|
||||
// fixme: strange positioning hack
|
||||
self.$positionInput.css({
|
||||
width: '98px'
|
||||
});
|
||||
$.browser.mozilla && self.$positionInput.css({
|
||||
marginTop: '-19px'
|
||||
});
|
||||
self.$positionInput.children('.OxLabel').each(function(i, element) {
|
||||
$(this).css({
|
||||
width: '22px',
|
||||
marginLeft: (i == 0 ? 8 : 0) + 'px',
|
||||
background: 'rgb(32, 32, 32)'
|
||||
});
|
||||
});
|
||||
self.$positionInput.children('div.OxInput').each(function(i) {
|
||||
var marginLeft = [-82, -58, -34, -10];
|
||||
$(this).css({
|
||||
marginLeft: marginLeft[i] + 'px'
|
||||
});
|
||||
});
|
||||
|
||||
if (self.options.type == 'play') {
|
||||
self.$loadingIcon = Ox.LoadingIcon()
|
||||
.appendTo(that)
|
||||
.start();
|
||||
self.loadingInterval = setInterval(function() {
|
||||
if (self.video.readyState) {
|
||||
clearInterval(self.loadingInterval);
|
||||
self.$loadingIcon.stop();
|
||||
setPosition();
|
||||
}
|
||||
}, 50);
|
||||
} else {
|
||||
setPosition();
|
||||
}
|
||||
|
||||
function getSubtitle() {
|
||||
var subtitle = '';
|
||||
Ox.forEach(self.options.subtitles, function(v) {
|
||||
if (v['in'] <= self.options.position && v['out'] > self.options.position) {
|
||||
subtitle = v.value;
|
||||
return false; // break
|
||||
}
|
||||
});
|
||||
return subtitle;
|
||||
}
|
||||
|
||||
function goToPoint() {
|
||||
that.triggerEvent('change', {
|
||||
position: self.options.points[self.options.type == 'in' ? 0 : 1]
|
||||
});
|
||||
}
|
||||
|
||||
function paused() {
|
||||
self.$playButton.toggle();
|
||||
}
|
||||
|
||||
function playing(data) {
|
||||
self.options.position = data.position;
|
||||
setMarkers();
|
||||
setSubtitle();
|
||||
self.$positionInput.value(Ox.formatDuration(self.options.position, 3));
|
||||
that.triggerEvent('playing', {
|
||||
position: self.options.position
|
||||
});
|
||||
}
|
||||
|
||||
function setHeight() {
|
||||
that.css({
|
||||
height: (self.options.height + 16) + 'px'
|
||||
});
|
||||
self.options.type == 'play' ? self.$video.options({
|
||||
height: self.options.height
|
||||
}) : self.$video.css({
|
||||
height: self.options.height + 'px'
|
||||
});
|
||||
}
|
||||
|
||||
function setMarkers() {
|
||||
self.options.position == self.options.posterFrame ?
|
||||
self.$markerFrame.show() : self.$markerFrame.hide();
|
||||
Ox.forEach(self.$markerPoint, function(markers, point) {
|
||||
Ox.forEach(markers, function(marker) {
|
||||
self.options.position == self.options.points[point == 'in' ? 0 : 1]
|
||||
? marker.show() : marker.hide();
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
function setPoint() {
|
||||
var data = {};
|
||||
self.options.points[self.options.type == 'in' ? 0 : 1] = self.options.position;
|
||||
setMarkers();
|
||||
data[self.options.type] = self.options.position;
|
||||
that.triggerEvent('set', data);
|
||||
}
|
||||
|
||||
function setPosition() {
|
||||
var position = Ox.limit(
|
||||
self.options.position - (self.options.type == 'out' ? 0.01 : 0),
|
||||
0, self.options.duration - 0.01
|
||||
),
|
||||
url;
|
||||
if (self.options.type == 'play') {
|
||||
self.$video.position(self.options.position);
|
||||
} else {
|
||||
self.$loadingIcon && self.$loadingIcon.stop();
|
||||
url = self.options.url(position);
|
||||
if (self.$video.attr('src') != url) {
|
||||
self.$loadingIcon = Ox.LoadingIcon()
|
||||
.appendTo(that)
|
||||
.start();
|
||||
self.$video.attr({
|
||||
src: url
|
||||
})
|
||||
.load(self.$loadingIcon.stop);
|
||||
}
|
||||
}
|
||||
setMarkers();
|
||||
setSubtitle();
|
||||
self.$positionInput.value(Ox.formatDuration(self.options.position, 3));
|
||||
}
|
||||
|
||||
function setSubtitle() {
|
||||
var subtitle = getSubtitle();
|
||||
if (subtitle != self.subtitle) {
|
||||
self.subtitle = subtitle;
|
||||
self.$subtitle.html(
|
||||
Ox.highlight(self.subtitle, self.options.find, 'OxHighlight')
|
||||
.replace(/\n/g, '<br/>')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function setSubtitleSize() {
|
||||
self.$subtitle.css({
|
||||
bottom: Math.floor(self.controlsHeight + self.options.height / 16) + 'px',
|
||||
width: self.options.width + 'px',
|
||||
fontSize: Math.floor(self.options.height / 20) + 'px',
|
||||
WebkitTextStroke: (self.options.height / 1000) + 'px rgb(0, 0, 0)'
|
||||
});
|
||||
}
|
||||
|
||||
function setWidth() {
|
||||
that.css({
|
||||
width: self.options.width + 'px'
|
||||
});
|
||||
self.options.type == 'play' ? self.$video.options({
|
||||
width: self.options.width
|
||||
}) : self.$video.css({
|
||||
width: self.options.width + 'px'
|
||||
});
|
||||
setSubtitleSize();
|
||||
}
|
||||
|
||||
function toggleMute() {
|
||||
self.$video.toggleMute();
|
||||
}
|
||||
|
||||
function togglePlay() {
|
||||
self.video.paused ? that.play() : that.pause();
|
||||
}
|
||||
|
||||
function toggleSize(data) {
|
||||
self.options.size = data.id
|
||||
that.triggerEvent('togglesize', {
|
||||
size: self.options.size
|
||||
});
|
||||
}
|
||||
|
||||
/*@
|
||||
mute <f> mute
|
||||
@*/
|
||||
that.mute = function() {
|
||||
self.$video.mute();
|
||||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
pause <f> pause
|
||||
@*/
|
||||
that.pause = function() {
|
||||
self.$video.pause();
|
||||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
play <f> play
|
||||
@*/
|
||||
that.play = function() {
|
||||
self.$video.play();
|
||||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
playInToOut <f> playInToOut
|
||||
@*/
|
||||
that.playInToOut = function() {
|
||||
self.$video.paused() && self.$playButton.toggle();
|
||||
self.$video.playInToOut();
|
||||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
toggleMute <f> toggleMute
|
||||
@*/
|
||||
that.toggleMute = function() {
|
||||
self.$muteButton.trigger('click');
|
||||
return that;
|
||||
}
|
||||
|
||||
/*@
|
||||
togglePlay <f> togglePlay
|
||||
@*/
|
||||
that.togglePlay = function() {
|
||||
self.$playButton.trigger('click');
|
||||
return that;
|
||||
}
|
||||
|
||||
/*@
|
||||
unmute <f> unmute
|
||||
@*/
|
||||
that.unmute = function() {
|
||||
self.$video.unmute();
|
||||
return that;
|
||||
};
|
||||
|
||||
return that;
|
||||
|
||||
};
|
|
@ -30,6 +30,8 @@ Ox.VideoPanel <f> VideoPanel Object
|
|||
volume <!> volume
|
||||
@*/
|
||||
|
||||
// fixme: should be VideoPlayerPanel
|
||||
|
||||
Ox.VideoPanel = function(options, self) {
|
||||
|
||||
self = self || {};
|
||||
|
|
Loading…
Reference in a new issue