Add support for Google Docs videos

This commit is contained in:
calzoneman 2013-11-07 17:19:36 -06:00
parent 2730c54344
commit 4198f3ce2c
6 changed files with 158 additions and 3 deletions

View file

@ -787,6 +787,59 @@ var CustomPlayer = function (data) {
self.seek = function () { };
};
var GoogleDocsPlayer = function (data) {
var self = this;
self.init = function (data) {
self.videoId = data.id;
self.videoLength = data.seconds;
self.paused = false;
var wmode = USEROPTS.wmode_transparent ? "transparent" : "opaque";
self.player = $("<object/>", data.object)[0];
$(self.player).attr("data", data.object.data);
$(self.player).attr("width", VWIDTH)
.attr("height", VHEIGHT);
data.params.forEach(function (p) {
$("<param/>", p).appendTo(self.player);
});
removeOld($(self.player));
};
self.init(data);
self.load = function (data) {
self.init(data);
};
self.pause = function () {
if(self.player && self.player.pauseVideo)
self.player.pauseVideo();
};
self.play = function () {
if(self.player && self.player.playVideo)
self.player.playVideo();
};
self.isPaused = function (callback) {
if(self.player && self.player.getPlayerState) {
var state = self.player.getPlayerState();
callback(state != YT.PlayerState.PLAYING);
} else {
callback(false);
}
};
self.getTime = function (callback) {
if(self.player && self.player.getCurrentTime)
callback(self.player.getCurrentTime());
};
self.seek = function (time) {
if(self.player && self.player.seekTo)
self.player.seekTo(time, true);
};
};
function handleMediaUpdate(data) {
// Don't update if the position is past the video length, but
// make an exception when the video length is 0 seconds
@ -882,7 +935,8 @@ var constructors = {
"rt": RTMPPlayer,
"jw": JWPlayer,
"im": ImgurPlayer,
"cu": CustomPlayer
"cu": CustomPlayer,
"gd": GoogleDocsPlayer
};
function loadMediaPlayer(data) {

View file

@ -1402,6 +1402,13 @@ function parseMediaLink(url) {
};
}
if ((m = url.match(/docs\.google\.com\/file\/d\/(.*?)\/edit/))) {
return {
id: m[1],
type: "gd"
};
}
return {
id: null,
type: null