From: riccardo Date: Mon, 9 May 2011 18:27:50 +0000 (+0200) Subject: added visualizer on the player (still work in progress) and dynamic resize listener X-Git-Tag: 1.1~230 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=db17466521ed6833b35b036bf0f45cc2220ad2fb;p=telemeta.git added visualizer on the player (still work in progress) and dynamic resize listener --- diff --git a/telemeta/htdocs/images/wait_small.gif b/telemeta/htdocs/images/wait_small.gif index a401a20e..155c8a5f 100644 Binary files a/telemeta/htdocs/images/wait_small.gif and b/telemeta/htdocs/images/wait_small.gif differ diff --git a/telemeta/htdocs/js/playerUtils.js b/telemeta/htdocs/js/playerUtils.js index 5416f712..b8ce16ee 100644 --- a/telemeta/htdocs/js/playerUtils.js +++ b/telemeta/htdocs/js/playerUtils.js @@ -5,10 +5,12 @@ function togglePlayerMaximization() { var view = $('#player'); $('#player_maximized, #player_minimized').css('display', 'none'); var ctr; + var dynamicResize = false; if (view.parents('#player_maximized').length) { ctr = $('#player_minimized').append(view); } else { ctr = $('#player_maximized').append(view); + dynamicResize = true; } ctr.css({ opacity: 0, @@ -20,38 +22,40 @@ function togglePlayerMaximization() { ctr.animate({ opacity: 1 }, 100); + player.setDynamicResize(dynamicResize); } -function change_visualizer_clicked(){ - var $J = jQuery; - var form = $J("#visualizer_id_form"); - //var img = jQuery("").attr("src","/images/wait.gif").css('verticalAlign','middle'); - - var visId = $J("#visualizer_id"); - visId.attr("disabled","disabled"); - var img = $J(form.children()[0]); - var src = undefined; - if(img.attr('src')){ - src = img.attr('src'); - img.attr("src","/images/wait_small.gif"); - } - - //form.append(img); - setTimeout(function(){ - if (player){ - player.refreshImage(); - } - //img.remove(); - setTimeout(function(){ - if(src){ - img.attr('src',src); - } - visId.removeAttr("disabled"); - },300); - },600); -} - -function loadPlayer(analizerUrl, soundUrl){ +//function change_visualizer_clicked(){ +// var $J = jQuery; +// var form = $J("#visualizer_id_form"); +// //var img = jQuery("").attr("src","/images/wait.gif").css('verticalAlign','middle'); +// +// var visId = $J("#visualizer_id"); +// visId.attr("disabled","disabled"); +// var img = $J(form.children()[0]); +// var src = undefined; +// if(img.attr('src')){ +// src = img.attr('src'); +// img.attr("src","/images/wait_small.gif"); +// } +// +// //form.append(img); +// setTimeout(function(){ +// if (player){ +// player.refreshImage(); +// } +// //img.remove(); +// setTimeout(function(){ +// if(src){ +// img.attr('src',src); +// } +// visId.removeAttr("disabled"); +// },300); +// },600); +//} + +function loadPlayer(analizerUrl, soundUrl, visualizers){ + if(!(analizerUrl) || !(soundUrl)){ return; } @@ -85,7 +89,7 @@ function loadPlayer(analizerUrl, soundUrl){ var pfl = parseFloat; var timeInMSecs=pin(duration[0])*3600+pin(duration[1])*60+pfl(duration[2]); timeInMSecs = Math.round(timeInMSecs*1000); - load_player(soundUrl, timeInMSecs); + load_player(soundUrl, timeInMSecs,visualizers); }, error:function(){ msgElm.parent().html("Error loading analyzer"); @@ -95,7 +99,7 @@ function loadPlayer(analizerUrl, soundUrl){ //loads a player WAITING for the sound identified by soundUrl to be FULLY LOADED!!!! -function load_player(soundUrl, durationInMsecs) { +function load_player(soundUrl, durationInMsecs, visualizers) { consolelog('PlayerUtils.load_player: '+soundUrl+' '+durationInMsecs); var load_player2 = this.load_player2; @@ -114,7 +118,7 @@ function load_player(soundUrl, durationInMsecs) { if(loadImmediately){ consolelog('entering while loading setting up---------------'+this.bytesLoaded+' of '+this.bytesTotal); loadImmediately=false; - load_player2(this, this.duration); + load_player2(this, this.duration,visualizers); } } }); @@ -122,13 +126,14 @@ function load_player(soundUrl, durationInMsecs) { //TODO: remove this code is only temporary here!!!!!!!!!!!!!!!!!!!!1 loadScripts('/timeside/src/',['rulermarker.js', //'markerlist.js', 'markermap.js', 'player.js', 'ruler.js','divmarker.js'], function(){ - load_player2(sound,durationInMsecs); + load_player2(sound,durationInMsecs,visualizers); }); } } //NOTE: the duration must be present. Loaded from xmlanalyzer (see above) -function load_player2(sound, durationInMsec) { +function load_player2(sound, durationInMsec, visualizers) { + if (!$('#player').length){ return; } @@ -138,15 +143,15 @@ function load_player2(sound, durationInMsec) { $('.ts-wave a img').insertAfter('.ts-wave a'); $('.ts-wave a').remove(); - var p = new Player(jQuery('#player'), sound, durationInMsec); + var p = new Player(jQuery('#player'), sound, durationInMsec, visualizers); consolelog('initialized player'); p._setupInterface(CURRENT_USER_NAME ? true : false); //p.loadMarkers(); player = p; - var change_visualizer_click = change_visualizer_clicked; - $('#visualizer_id').change(change_visualizer_click); +// var change_visualizer_click = change_visualizer_clicked; +// $('#visualizer_id').change(change_visualizer_click); //$('#visualizer_id_form').submit(change_visualizer_clicked); $('#player_maximized .toggle, #player_minimized .toggle').click(function() { diff --git a/telemeta/htdocs/timeside/src/player.js b/telemeta/htdocs/timeside/src/player.js index b1de828b..bebb497a 100644 --- a/telemeta/htdocs/timeside/src/player.js +++ b/telemeta/htdocs/timeside/src/player.js @@ -2,7 +2,7 @@ var Player = TimesideClass.extend({ //sound duration is in milliseconds because the soundmanager has that unit, //player (according to timeside syntax) has durations in seconds - init: function(container, sound, soundDurationInMsec) { + init: function(container, sound, soundDurationInMsec,visualizers) { this._super(); var player = this; @@ -15,7 +15,10 @@ var Player = TimesideClass.extend({ this.getSound = function(){ return sound; } - + + this.getVisualizers = function(){ + return visualizers; + } //rpivate functions for converting @@ -82,18 +85,18 @@ var Player = TimesideClass.extend({ }; -// if(sound.readyState != 3){ -// /*sound.readyState -// * Numeric value indicating a sound's current load status -// * 0 = uninitialised -// * 1 = loading -// * 2 = failed/error -// * 3 = loaded/success -// */ -// sound.options.whileloading=function(){ -// -// } -// }; + // if(sound.readyState != 3){ + // /*sound.readyState + // * Numeric value indicating a sound's current load status + // * 0 = uninitialised + // * 1 = loading + // * 2 = failed/error + // * 3 = loaded/success + // */ + // sound.options.whileloading=function(){ + // + // } + // }; //implement play here: while playing we do not have to update the sound position, so //we call the private variable soundPos @@ -173,7 +176,7 @@ var Player = TimesideClass.extend({ consolelog('player _setupInterface sound.readyState:'+sound.readyState); //handle also cases 0 and 2???? var $J = this.$J; //defined in the super constructor - + var me=this; //TODO: use cssPrefix or delete cssPrefix!!!!! //TODO: note that ts-viewer is already in the html page. Better avoid this (horrible) method and use the html var skeleton = { @@ -187,7 +190,7 @@ var Player = TimesideClass.extend({ 'div.ts-control': { 'div.ts-layout': { 'div.ts-playback': ['a.ts-play', 'a.ts-pause', 'a.ts-rewind', 'a.ts-forward', 'a.ts-set-marker' //] - ,'a.ts-volume'] + ,'a.ts-volume','select.visualizer'] } }/*, 'div.marker-control': ['a.set-marker']*/ @@ -209,6 +212,46 @@ var Player = TimesideClass.extend({ var volume = jQueryObjs.find('.ts-volume'); + //setting the select option for visualizers: + var visualizers = this.getVisualizers(); + var select = jQueryObjs.find('.visualizer'); + for(var name in visualizers){ + $J('