diff options
Diffstat (limited to 'frontend/static/js/soundcloud.js')
| -rw-r--r-- | frontend/static/js/soundcloud.js | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/frontend/static/js/soundcloud.js b/frontend/static/js/soundcloud.js new file mode 100644 index 0000000..1ff6c45 --- /dev/null +++ b/frontend/static/js/soundcloud.js @@ -0,0 +1,157 @@ +var Soundcloud = + { + type: "soundcloud", + loaded: false, + pending: false, + playing: false, + player: null, + playerId: null, + timeout: null, + video: null, + width: "100%", + height: "100%", + volume: 100, + play: function (video) + { + d.warn("SOUNDCLOUD PLAY "+video.key) + if (video.error) + return Soundcloud.error() + if (Soundcloud.playing) + Soundcloud.stop() + $("#screen").html("<div id='soundcloud'></div><div id='soundcloud-img'></div><div id='soundcloud-dl'></div>") + Soundcloud.video = video + Soundcloud.playing = false + + if (Soundcloud.player) + { + Soundcloud.player = null + swfobject.removeSWF("soundcloud") + } + + var flashvars = { enable_api: true, object_id: "soundcloud", url: video.src, theme_color: "#657b83", } + var attributes = { id: "soundcloud", name: "soundcloud" } + var params = { allowscriptaccess: "always", wmode: "opaque", } + + swfobject.embedSWF("http://player.soundcloud.com/player.swf", "soundcloud", "81", "81", "9.0.0", + "expressInstall.swf", flashvars, params, attributes, Soundcloud.playerDidLoad); + }, + playerDidLoad: function (e) + { + if (e.success === false) + return Soundcloud.error("failed to load") + d.warn("LOADED") + Soundcloud.player = swfobject.getObjectById('soundcloud') + $("#ytscreen").css("z-index", -2) + // instead of raising events, the soundcloud swf calls it's js api directly + window.soundcloud = { onPlayerReady: Soundcloud.ready, onMediaEnd: Soundcloud.finish } + }, + ready: function () + { + d.warn("READY") + Soundcloud.playing = true + Soundcloud.player = swfobject.getObjectById('soundcloud') + if (Soundcloud.player) + { + Soundcloud.player.api_play() + Soundcloud.player.api_setVolume(Soundcloud.volume) + } + Soundcloud.report() + }, + report: function () + { + if (! Soundcloud.player) + return Soundcloud.error() + var track = Soundcloud.player.api_getCurrentTrack() + $("#video-title").html(track.title) + if (track.downloadable && track.download_url !== "undefined" && track.download_url !== undefined) + $("#soundcloud-dl").html('<a href="'+track.download_url+'" target="_parent">download</a>') + else + $("#soundcloud-dl").html("") + var art = '' + if (track.artwork) + art = track.artwork.split("?")[0].replace('large','original') + else if (track.user && track.user.avatarUrl) + art = track.user.avatarUrl.split("?")[0].replace('large','crop') + if (art.length) + { + $("#soundcloud-img").html("<img src='"+art+"' id='sc-art' />") + $("#sc-art").bind("error", function(){$("#sc-art").hide()}) + } + return + d.warn("____________") + for (i in track) + d.warn("<b>"+i+":</b> "+track[i]) + d.warn("____________") + var user = track.user + for (i in user) + d.warn("<b>"+i+":</b> "+user[i]) + d.warn("____________") + }, + toggle: function () + { + d.warn("TOGGLE PLAYBACK") + if (Soundcloud.player) + return Soundcloud.player.api_toggle() + return false + }, + error: function (s) + { + Player.error("SOUNDCLOUD "+s) + Soundcloud.finish() + }, + setVolume: function (vol) + { + Soundcloud.volume = vol + if (Soundcloud.player) + Soundcloud.player.api_setVolume(vol) + }, + pause: function () + { + d.warn("PAUSED PLAYBACK") + Soundcloud.playing = false + if (Soundcloud.player) + Soundcloud.player.api_pause() + return true + }, + resume: function () + { + d.warn("RESUME PLAYBACK") + Soundcloud.playing = true + if (Soundcloud.player) + Soundcloud.player.api_play() + return false + }, + stop: function () + { + d.warn("SOUNDCLOUD STOP") + if (Soundcloud.player) + Soundcloud.player.api_stop() + Soundcloud.playing = false + }, + finish: function () + { + d.warn("SOUNDCLOUD FINISH") + Soundcloud.playing = false + swfobject.removeSWF("soundcloud") + Player.finish() + }, + load: function () + { + d.warn("LOADING SOUNDCLOUD") + Soundcloud.loaded = true + }, + unload: function () + { + d.warn("SOUNDCLOUD UNLOADED") + swfobject.removeSWF("soundcloud") + Soundcloud.loaded = false + Soundcloud.playing = false + }, + init: function () + { + d.warn("SOUNDCLOUD INIT") + window.soundcloud = Soundcloud + } + } +Player.register(Soundcloud) + |
