From 5078e508e7f5db6c3a938cc5bde26141bf154233 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Wed, 24 Aug 2011 10:10:06 +0300 Subject: trying audio player --- .../audio-player/audio-player-uncompressed.js | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 junk/j14test/audio-player/audio-player-uncompressed.js (limited to 'junk/j14test/audio-player/audio-player-uncompressed.js') diff --git a/junk/j14test/audio-player/audio-player-uncompressed.js b/junk/j14test/audio-player/audio-player-uncompressed.js new file mode 100644 index 0000000..d2ab1bf --- /dev/null +++ b/junk/j14test/audio-player/audio-player-uncompressed.js @@ -0,0 +1,129 @@ +var AudioPlayer = function () { + var instances = []; + var activePlayerID; + var playerURL = ""; + var defaultOptions = {}; + var currentVolume = -1; + var requiredFlashVersion = "9"; + + function getPlayer(playerID) { + if (document.all && !window[playerID]) { + for (var i = 0; i < document.forms.length; i++) { + if (document.forms[i][playerID]) { + return document.forms[i][playerID]; + break; + } + } + } + return document.all ? window[playerID] : document[playerID]; + } + + function addListener (playerID, type, func) { + getPlayer(playerID).addListener(type, func); + } + + return { + setup: function (url, options) { + playerURL = url; + defaultOptions = options; + if (swfobject.hasFlashPlayerVersion(requiredFlashVersion)) { + swfobject.switchOffAutoHideShow(); + swfobject.createCSS("p.audioplayer_container span", "visibility:hidden;height:24px;overflow:hidden;padding:0;border:none;"); + } + }, + + getPlayer: function (playerID) { + return getPlayer(playerID); + }, + + addListener: function (playerID, type, func) { + addListener(playerID, type, func); + }, + + embed: function (elementID, options) { + var instanceOptions = {}; + var key; + + var flashParams = {}; + var flashVars = {}; + var flashAttributes = {}; + + // Merge default options and instance options + for (key in defaultOptions) { + instanceOptions[key] = defaultOptions[key]; + } + for (key in options) { + instanceOptions[key] = options[key]; + } + + if (instanceOptions.transparentpagebg == "yes") { + flashParams.bgcolor = "#FFFFFF"; + flashParams.wmode = "transparent"; + } else { + if (instanceOptions.pagebg) { + flashParams.bgcolor = "#" + instanceOptions.pagebg; + } + flashParams.wmode = "opaque"; + } + + flashParams.menu = "false"; + + for (key in instanceOptions) { + if (key == "pagebg" || key == "width" || key == "transparentpagebg") { + continue; + } + flashVars[key] = instanceOptions[key]; + } + + flashAttributes.name = elementID; + flashAttributes.style = "outline: none"; + + flashVars.playerID = elementID; + + swfobject.embedSWF(playerURL, elementID, instanceOptions.width.toString(), "24", requiredFlashVersion, false, flashVars, flashParams, flashAttributes); + + instances.push(elementID); + }, + + syncVolumes: function (playerID, volume) { + currentVolume = volume; + for (var i = 0; i < instances.length; i++) { + if (instances[i] != playerID) { + getPlayer(instances[i]).setVolume(currentVolume); + } + } + }, + + activate: function (playerID, info) { + if (activePlayerID && activePlayerID != playerID) { + getPlayer(activePlayerID).close(); + } + + activePlayerID = playerID; + }, + + load: function (playerID, soundFile, titles, artists) { + getPlayer(playerID).load(soundFile, titles, artists); + }, + + close: function (playerID) { + getPlayer(playerID).close(); + if (playerID == activePlayerID) { + activePlayerID = null; + } + }, + + open: function (playerID, index) { + if (index == undefined) { + index = 1; + } + getPlayer(playerID).open(index == undefined ? 0 : index-1); + }, + + getVolume: function (playerID) { + return currentVolume; + } + + } + +}(); -- cgit v1.3.1