diff -r ecdfc63274bf -r 436d4791d7ac client/player/js/jquery.jscontrolbar.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/player/js/jquery.jscontrolbar.js Wed Jun 09 16:48:35 2010 +0200 @@ -0,0 +1,263 @@ +try { + var controlbarReady = playerReady; +} catch (err){ +} + +playerReady = function(obj) { + try { + var player = $("#"+obj['id']); + player.each(function (){ + this.addModelListener("TIME","timeTracker"); + this.addModelListener("STATE","playTracker"); + this.addControllerListener("MUTE","muteTracker"); + this.addControllerListener("VOLUME","volumeTracker"); + }); + player.addControlbar(); + } catch (err){ + } + try { + controlbarReady(obj); + } catch (err){ + } +} + +jQuery.fn.addControlbar = function (options){ + var settings = jQuery.extend({ + 'width': this.width(), + 'prefix': 'jw_controlbar', + 'elements': { + 'play': { + 'width': '16px', + 'height': '16px', + 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_play_blue.png")', + 'float': 'left', + 'display': 'block' + }, + 'pause': { + 'width': '16px', + 'height': '16px', + 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_pause_blue.png")', + 'float': 'left', + 'display': 'none' + }, + 'stop': { + 'width': '16px', + 'height': '16px', + 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/control_stop_blue.png")', + 'float': 'left', + 'display': 'block' + }, + 'currenttime': { + 'width': '12%', + 'float': 'left', + 'display': 'block', + 'text-align': 'right', + 'font-family': 'monospace', + 'font-weight': '900', + 'font-size': '11px' + }, + 'scrubber': { + 'width': '45%', + 'float': 'left', + 'display': 'block', + 'margin': '5px' + }, + 'totaltime': { + 'width': '12%', + 'float': 'left', + 'display': 'block', + 'text-align': 'left', + 'font-family': 'monospace', + 'font-weight': '900', + 'font-size': '11px' + }, + 'fullscreen': { + 'width': '5%', + 'background-color': 'black', + 'float': 'left', + 'display': 'none' + }, + 'mute': { + 'width': '16px', + 'height': '16px', + 'float': 'left', + 'display': 'block', + 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/sound_none.png")' + }, + 'unmute': { + 'width': '16px', + 'height': '16px', + 'float': 'left', + 'display': 'none', + 'background-image': 'url("http://www.longtailvideo.com/jw/images/controlbar/sound_mute.png")' + + }, + 'volume': { + 'width': '5%', + 'float': 'left', + 'display': 'block', + 'margin': '5px' + + } + } + }, options); + + this.after(buildControlbar(settings)); + var player = this[0]; + var playerSiblings = this.siblings(); + var play = $("."+settings.prefix+".play", playerSiblings); + var pause = $("."+settings.prefix+".pause", playerSiblings); + var stop = $("."+settings.prefix+".stop", playerSiblings); + var scrubber = $("."+settings.prefix+".scrubber", playerSiblings); + var currenttime = $("."+settings.prefix+".currenttime", playerSiblings); + var totaltime = $("."+settings.prefix+".totaltime", playerSiblings); + var fullscreen = $("."+settings.prefix+".fullscreen", playerSiblings); + var mute = $("."+settings.prefix+".mute", playerSiblings); + var unmute = $("."+settings.prefix+".unmute", playerSiblings); + var volume = $("."+settings.prefix+".volume", playerSiblings); + + play.click(function() { + player.sendEvent("PLAY", true); + }); + + + pause.click(function() { + player.sendEvent("PLAY", false); + }); + + stop.click(function() { + player.sendEvent("STOP"); + }); + + currenttime.html("00:00"); + + scrubber.slider({ + range: "min", + min: 0, + max: 100000, + slide: function(event, ui) { + var duration = player.getPlaylist()[player.getConfig()['item']].duration; + var seekTime = Math.round(duration * ui.value / 100000); + player.sendEvent("SEEK", seekTime); + } + }); + + totaltime.html("00:00"); + + fullscreen.click(function() { + player.sendEvent("FULLSCREEN", true); + }); + + mute.click(function() { + player.sendEvent("MUTE", true); + }); + + unmute.click(function() { + player.sendEvent("MUTE", false); + }); + + volume.slider({ + range: "min", + min: 0, + max: 100, + value: player.getConfig()['volume'], + slide: function(event, ui) { + player.sendEvent("VOLUME", ui.value); + } + }); +} + +function buildControlbar(settings){ + var result = ""; + result += "