Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var NicovideoPlayer = function (data) {
- var self = this;
- self.videoId = data.id;
- self.scuri = data.meta.scuri || self.videoId;
- self.codec = data.meta.codec;
- self.videoLength = data.seconds;
- self.theYouTubeDevsNeedToFixThisShit = false;
- self.init = function () {
- var iframe = $("<iframe/>");
- iframe.addClass("embed-responsive-item");
- iframe.css("display", "none");
- iframe.attr("width", VWIDTH);
- iframe.attr("height", VHEIGHT);
- iframe.attr("src", "/php/sm.php?id="+self.videoId+"&w="+VWIDTH+"&h="+VHEIGHT);
- iframe.attr("frameborder", "0");
- iframe.attr("scrolling", "no");
- removeOld(iframe);
- iframe.load(function(){
- var obj = iframe.contents().find('#external_nico_0');
- obj.css("display", "none");
- var data = GetQueryString(obj[0].getAttribute('flashvars'));
- var iframe2 = $("<iframe/>");
- iframe2.css("display", "none");
- iframe2.attr("src", "http://ext.nicovideo.jp/thumb_watch?eco=1&v="+data.videoId+"&k="+data.thumbPlayKey);
- iframe2.load(function(){
- switch(self.codec){
- case "swf":
- removeOld();
- var url = self.scuri;
- url += "&" + [
- "api=2",
- "show_title=0",
- "show_byline=0",
- "show_portrait=0",
- "fullscreen=1",
- "loop=0"
- ].join("&");
- var flashvars = {
- api: 2,
- player_id: "ytapiplayer"
- };
- var params = {
- allowfullscreen: true,
- allowScriptAccess: "always",
- wmode: USEROPTS.wmode_transparent ? "transparent" : undefined
- };
- swfobject.embedSWF(self.scuri,
- "ytapiplayer",
- VWIDTH,
- VHEIGHT,
- "9.0.0",
- "expressInstall.swf",
- flashvars,
- params);
- self.player = $("#ytapiplayer")[0];
- waitUntilDefined(self.player, "api_addEventListener", function () {
- self.player.api_addEventListener("ready", function () {
- self.player.api_play();
- self.player.api_addEvent("finish", function () {
- if(CLIENT.leader)
- socket.emit("playNext");
- });
- self.player.api_addEvent("pause", function () {
- PLAYER.paused = true;
- if(CLIENT.leader)
- sendVideoUpdate();
- });
- self.player.api_addEvent("play", function () {
- PLAYER.paused = false;
- if(CLIENT.leader)
- sendVideoUpdate();
- });
- self.setVolume(VOLUME);
- });
- });
- break;
- default:
- var video = $("<video/>");
- video
- .addClass("embed-responsive-item")
- .attr("src", self.scuri)
- .attr("controls", "controls")
- .attr("width", VWIDTH)
- .attr("height", VHEIGHT)
- .attr("autoplay", true)
- .attr("preload", "auto")
- .html("Your browser does not support HTML5 <code><video></code> tags :(");
- video.bind("loadeddata", function(){
- if (!self.paused && self.theYouTubeDevsNeedToFixThisShit) {
- self.pause();
- self.theYouTubeDevsNeedToFixThisShit = false;
- }
- });
- removeOld(video);
- self.player = video[0];
- if (!Object.hasOwnProperty.call(self, "paused")) {
- Object.defineProperty(self, "paused", {
- get: function () {
- return self.player.paused;
- }
- });
- }
- self.player.onpause = function () {
- self.paused = true;
- if (CLIENT.leader) {
- sendVideoUpdate();
- }
- };
- self.player.onplay = function () {
- self.paused = false;
- if (CLIENT.leader) {
- sendVideoUpdate();
- }
- };
- self.player.onended = function () {
- if (CLIENT.leader) {
- socket.emit("playNext");
- }
- };
- self.setVolume(VOLUME);
- break;
- }
- });
- iframe2.insertBefore(obj);
- });
- };
- self.load = function (data) {
- self.videoId = data.id;
- self.scuri = data.meta.scuri || self.videoId;
- self.codec = data.meta.codec;
- self.videoLength = data.seconds;
- self.init();
- };
- self.pause = function () {
- switch(self.codec){
- case "swf":
- if(self.player && self.player.api_pause)
- self.player.api_pause();
- break;
- default:
- if (self.player)
- self.player.pause();
- break;
- }
- };
- self.play = function () {
- switch(self.codec){
- case "swf":
- if(self.player && self.player.api_play)
- self.player.api_play();
- break;
- default:
- if (self.player)
- self.player.play();
- break;
- }
- };
- self.getTime = function (callback) {
- switch(self.codec){
- case "swf":
- if(self.player && self.player.api_getCurrentTime)
- callback(parseFloat(self.player.api_getCurrentTime()));
- break;
- default:
- if (self.player)
- callback(self.player.currentTime);
- break;
- }
- };
- self.seek = function (time) {
- switch(self.codec){
- case "swf":
- if(self.player && self.player.api_seekTo);
- self.player.api_seekTo(time);
- break;
- default:
- if (self.player) {
- try {
- if (self.player.paused) {
- self.player.play();
- }
- self.player.currentTime = time;
- } catch (e) {
- }
- }
- break;
- }
- };
- self.getVolume = function (cb) {
- switch(self.codec){
- case "swf":
- if (self.player && self.player.api_getVolume)
- cb(self.player.api_getVolume());
- break;
- default:
- if (self.player) {
- if (self.player.muted) {
- cb(0);
- } else {
- cb(self.player.volume);
- }
- }
- break;
- }
- };
- self.setVolume = function (vol) {
- switch(self.codec){
- case "swf":
- if (self.player && self.player.api_setVolume)
- self.player.api_setVolume(vol);
- break;
- default:
- if (self.player)
- self.player.volume = vol;
- break;
- }
- };
- self.init();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement