From db17466521ed6833b35b036bf0f45cc2220ad2fb Mon Sep 17 00:00:00 2001 From: riccardo Date: Mon, 9 May 2011 20:27:50 +0200 Subject: [PATCH] added visualizer on the player (still work in progress) and dynamic resize listener --- telemeta/htdocs/images/wait_small.gif | Bin 4035 -> 10819 bytes telemeta/htdocs/js/playerUtils.js | 81 +++++---- telemeta/htdocs/timeside/src/player.js | 162 +++++++++++++----- telemeta/htdocs/timeside/src/timeside.js | 7 +- .../telemeta_default/mediaitem_detail.html | 16 +- 5 files changed, 176 insertions(+), 90 deletions(-) diff --git a/telemeta/htdocs/images/wait_small.gif b/telemeta/htdocs/images/wait_small.gif index a401a20eea4784356ecbfef1d7fdabbb3db0c33c..155c8a5f1971091c899331c5081e5e7ca1042efe 100644 GIT binary patch literal 10819 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 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(""); @@ -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('