mirror of https://github.com/calzoneman/sync.git
Start refactoring clientside player init
This commit is contained in:
parent
0aa8e0f930
commit
0a00d059e8
|
@ -75,6 +75,171 @@ var Player = function(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeOld(replace) {
|
||||||
|
replace = replace || $("<div/>");
|
||||||
|
var old = $("#ytapiplayer");
|
||||||
|
replace.insertBefore(old);
|
||||||
|
old.remove();
|
||||||
|
replace.attr("id", "ytapiplayer");
|
||||||
|
}
|
||||||
|
|
||||||
|
var YouTubePlayer = function (data) {
|
||||||
|
var self = this;
|
||||||
|
waitUntilDefined(window, "YT", function () {
|
||||||
|
removeOld();
|
||||||
|
self.paused = false;
|
||||||
|
self.videoId = data.id;
|
||||||
|
self.player = new YT.Player("ytapiplayer", {
|
||||||
|
height: VHEIGHT,
|
||||||
|
width: VWIDTH,
|
||||||
|
videoId: data.id,
|
||||||
|
playerVars: {
|
||||||
|
autohide: 1, // Autohide controls
|
||||||
|
autoplay: 1, // Autoplay video
|
||||||
|
controls: 1, // Show controls
|
||||||
|
iv_load_policy: 3, // No annotations
|
||||||
|
modestbranding: 1, // No logo
|
||||||
|
rel: 0 // No related videos
|
||||||
|
},
|
||||||
|
events: {
|
||||||
|
onReady: function() {
|
||||||
|
//socket.emit("playerReady");
|
||||||
|
},
|
||||||
|
onStateChange: function(ev) {
|
||||||
|
if(PLAYER.paused && ev.data != YT.PlayerState.PAUSED
|
||||||
|
|| !PLAYER.paused && ev.data == YT.PlayerState.PAUSED) {
|
||||||
|
self.paused = (ev.data == YT.PlayerState.PAUSED);
|
||||||
|
if(CLIENT.leader)
|
||||||
|
sendVideoUpdate();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.paused = (ev.data == YT.PlayerState.PAUSED);
|
||||||
|
}
|
||||||
|
if(CLIENT.leader && ev.data == YT.PlayerState.ENDED) {
|
||||||
|
socket.emit("playNext");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#ytapiplayer").css("border", "none");
|
||||||
|
|
||||||
|
self.load = function (data) {
|
||||||
|
if(self.player.loadVideoById) {
|
||||||
|
self.player.loadVideoById(data.id, data.currentTime);
|
||||||
|
if(VIDEOQUALITY)
|
||||||
|
self.player.setPlaybackQuality(VIDEOQUALITY);
|
||||||
|
self.videoId = data.id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.pause = function() {
|
||||||
|
if(self.player.pauseVideo)
|
||||||
|
self.player.pauseVideo();
|
||||||
|
}
|
||||||
|
|
||||||
|
self.play = function() {
|
||||||
|
if(self.player.playVideo)
|
||||||
|
self.player.playVideo();
|
||||||
|
}
|
||||||
|
|
||||||
|
self.isPaused = function(callback) {
|
||||||
|
if(self.player.getPlayerState) {
|
||||||
|
var state = self.player.getPlayerState();
|
||||||
|
callback(state != YT.PlayerState.PLAYING);
|
||||||
|
} else {
|
||||||
|
callback(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.getTime = function(callback) {
|
||||||
|
if(self.player.getCurrentTime)
|
||||||
|
callback(self.player.getCurrentTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
self.seek = function(time) {
|
||||||
|
if(self.player.seekTo)
|
||||||
|
self.player.seekTo(time, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var VimeoPlayer = function (data) {
|
||||||
|
var self = this;
|
||||||
|
waitUntilDefined(window, "$f", function () {
|
||||||
|
self.videoId = data.id;
|
||||||
|
self.init = function () {
|
||||||
|
var iframe = $("<iframe/>");
|
||||||
|
removeOld(iframe);
|
||||||
|
iframe.attr("width", VWIDTH);
|
||||||
|
iframe.attr("height", VHEIGHT);
|
||||||
|
iframe.attr("src", "http://player.vimeo.com/video/"+self.videoId+"?api=1&player_id=ytapiplayer");
|
||||||
|
iframe.attr("webkitAllowFullScreen", "");
|
||||||
|
iframe.attr("mozallowfullscreen", "");
|
||||||
|
iframe.attr("allowFullScreen", "");
|
||||||
|
iframe.css("border", "none");
|
||||||
|
|
||||||
|
$f(iframe[0]).addEvent("ready", function () {
|
||||||
|
//socket.emit("playerReady");
|
||||||
|
self.player = $f(iframe[0]);
|
||||||
|
self.player.api("play");
|
||||||
|
|
||||||
|
self.player.addEvent("finish", function () {
|
||||||
|
if(CLIENT.leader) {
|
||||||
|
socket.emit("playNext");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
self.player.addEvent("pause", function () {
|
||||||
|
self.paused = true;
|
||||||
|
if(CLIENT.leader)
|
||||||
|
sendVideoUpdate();
|
||||||
|
});
|
||||||
|
|
||||||
|
self.player.addEvent("play", function () {
|
||||||
|
self.paused = false;
|
||||||
|
if(CLIENT.leader)
|
||||||
|
sendVideoUpdate();
|
||||||
|
});
|
||||||
|
}.bind(self));
|
||||||
|
}
|
||||||
|
|
||||||
|
self.init();
|
||||||
|
|
||||||
|
self.load = function(data) {
|
||||||
|
self.videoId = data.id;
|
||||||
|
self.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
self.pause = function() {
|
||||||
|
if(self.player && self.player.api)
|
||||||
|
self.player.api("pause");
|
||||||
|
}
|
||||||
|
|
||||||
|
self.play = function() {
|
||||||
|
if(self.player && self.player.api)
|
||||||
|
self.player.api("play");
|
||||||
|
}
|
||||||
|
|
||||||
|
self.isPaused = function(callback) {
|
||||||
|
callback(self.paused);
|
||||||
|
}
|
||||||
|
|
||||||
|
self.getTime = function(callback) {
|
||||||
|
if(self.player && self.player.api) {
|
||||||
|
// Vimeo api returns time as a string because fuck logic
|
||||||
|
self.player.api("getCurrentTime", function(time) {
|
||||||
|
callback(parseFloat(time));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.seek = function(time) {
|
||||||
|
if(self.player && self.player.api)
|
||||||
|
self.player.api("seekTo", time);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Player.prototype.nullPlayer = function() {
|
Player.prototype.nullPlayer = function() {
|
||||||
this.player = null;
|
this.player = null;
|
||||||
this.load = function(data) { }
|
this.load = function(data) { }
|
||||||
|
|
Loading…
Reference in New Issue