diff -r af3778eab5e8 -r 1ecfe4720da7 client/player/js/LdtPlayer.js --- a/client/player/js/LdtPlayer.js Tue Jun 15 14:04:01 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,529 +0,0 @@ -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - ---------------------------------------------------------------- - - LDTPlayer is created by http://www.iri.centrepompidou.fr - 2010-06-10 - - Initiated By Samuel Huron < samuel.huron (at) cybunk (dot) com - this version is the 0.06 - - ---------------------------------------------------------------- -*/ - - - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - INTERFACE : SLIDER ( CONTROL BAR ) | BUTTON () */ - - - function createInterface (width,height,duration){ - $jIRI(function() { - - $jIRI("#Annotations").width(width-(78*2)); - $jIRI("#ShowAnnotation").width(width-10); - $jIRI("#controlerLdt").width(width); - $jIRI("#Ldtplayer1").attr("z-index","100"); - - $jIRI("#ShowAnnotation").click(function () { - $jIRI(this).slideUp(); - }); - - var LdtpPlayerY = $jIRI("#ldtPlaceHolder").attr("top"); - var LdtpPlayerX = $jIRI("#ldtPlaceHolder").attr("left"); - - //alert(LdtpPlayerY+" | "+LdtpPlayerX); - //$jIRI("#ShowAnnotation").attr("position","absolute"); - /*$jIRI("#ShowAnnotation").attr("top",0); - $jIRI("#ShowAnnotation").attr("left",0);*/ - - //$jIRI("#slider-range-min").roll - $jIRI("#slider-range-min").slider({ //range: "min", - value: 0, - min: 1, - max: duration/1000,//1:54:52.66 = 3600+3240+ - step: 0.1, - slide: function(event, ui) { - - //$jIRI("#amount").val(ui.value+" s"); - player.sendEvent('SEEK', ui.value) - //player.sendEvent('PAUSE') - } - }); - $jIRI("#amount").val($jIRI("#slider-range-min").slider("value")+" s"); - - $jIRI(".ldtControl1 button:first").button({ - icons: { - primary: 'ui-icon-play' - }, - text: false - }).next().button({ - icons: { - primary: 'ui-icon-seek-next' - }, - text: false - }); - - $jIRI(".ldtControl2 button:first").button({ - icons: { - primary: 'ui-icon-newwin'//, - //secondary: 'ui-icon-volume-off' - }, - text: false - }).next().button({ - icons: { - primary: 'ui-icon-volume-on' - }, - text: false - }); - - }); - } - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - CREER JW PLAYER creation + listener */ - - - var currentPosition = 0; - var currentVolume = 50; - var player = null; - - function playerReady(thePlayer) { - //alert("ready"); - player = window.document[thePlayer.id]; - addListeners(); - } - - function addListeners() { - if (player) { - player.addModelListener("TIME", "positionListener"); - player.addControllerListener("VOLUME", "volumeListener"); - player.addPlayPauseListener("PLAY", "state"); - } else { - setTimeout("addListeners()",100); - } - - // et changer les boutons - } - - //function - - function addPlayPauseListener(obj) { - if(obj){ - $jIRI(".control1 button:first").button({ - icons: { - primary: 'ui-icon-pause' - }, - text: false - }); - }else{ - $jIRI(".control1 button:first").button({ - icons: { - primary: 'ui-icon-play' - }, - text: false - }); - } - } - - function positionListener(obj) { - currentPosition = obj.position; - var tmp = document.getElementById("posit"); - if (tmp) { tmp.innerHTML = "position: " + currentPosition; } - $jIRI("#slider-range-min").slider("value", obj.position); - $jIRI("#amount").val(obj.position+" s"); - // afficher annotation - - MyLdt.checkTime(currentPosition); - } - - function volumeListener(obj) { - currentVolume = obj.percentage; - var tmp = document.getElementById("vol"); - if (tmp) { tmp.innerHTML = "volume: " + currentVolume; } - } - - function createPlayer(width,height,url) { - - myUrlFragment = url.split("/"); - // - file = myUrlFragment[myUrlFragment.length-3]+"/"+myUrlFragment[myUrlFragment.length-2]+"/"+myUrlFragment[myUrlFragment.length-1]; - indexofff = url.lastIndexOf(file); - streamer = url.substr(0,indexofff); - alert(url+"="+streamer+" - "+file); - - var flashvars = { - streamer:streamer, - file:file, - //live:"true", - autostart:"true", - controlbar:"none" - } - - var params = { - allowfullscreen:"true", - allowscriptaccess:"always", - wmode:"transparent" - } - - var attributes = { - id:"Ldtplayer1", - name:"Ldtplayer1" - } - - swfobject.embedSWF("swf/player.swf", "ldtPlaceHolder", width, height, "9.0.115", false, flashvars, params, attributes); - } - - - - - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - -LOAD JSON AND PARSE IT -*/ - - - var MyLdt; - var Durration; - var playerLdtWidth; - var playerLdtHeight; - - function loadJson (width,height,urlJson){ - - playerLdtWidth=width; - playerLdtHeight=height; - - $jIRI.ajax({ - dataType: 'jsonp', - url:urlJson, - success: function(json){ - - //alert("success !"); - - - } - ,error: function(data){ - alert("ERROR : "+data); - } - }); - } - - function callbackLdts(json){ - /* START PARSING ----------------------- */ - /* metas , medias , annotation-types , annotations , lists , tags , views */ - /* # fonction avec 1 seul media et 1 seul annotation type code a cleaner */ - /* # créer le player */ - //$jIRI.each(json.medias, function(i,item) { - //}); - $jIRI("
").appendTo("#output"); - MyMedia = new Media(json.medias[0].id,json.medias[0].url,json.medias[0]["dc:duration"],json.medias[0]['dc:title'],json.medias[0]['dc:description']); - MyMedia.createPlayer(playerLdtWidth,playerLdtHeight); - - /* # créer lignes */ - /*$jIRI.each(json['annotation-types'], function(i,item) { - });*/ - MyLdt = new Ligne (json['annotation-types'][0].id,json['annotation-types'][0]['dc:title'],json['annotation-types'][0]['dc:description'],json.medias[0]["dc:duration"]); - //alert("duration : "+json.medias[0]["dc:duration"]); - - /* # créer les annotations */ - $jIRI.each(json.annotations, function(i,item) { - - MyLdt.addAnnotation( - item.id, - item.begin, - item.end, - item.media, - item.content.title, - item.content.description, - item.content.color); - - }); - $jIRI.each(json.lists, function(i,item) { - trace("lists",""); - }); - $jIRI.each(json.tags, function(i,item) { - trace("tags",""); - }); - $jIRI.each(json.views, function(i,item) { - trace("views",""); - }); - /* END PARSING ----------------------- */ - - } - - function trace (msg,value){ - $jIRI("
"+msg+" : "+value+"
").appendTo("#output"); - } - - - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- -INIT player LDT -*/ - - function playerLdt (width,height,file,divId){ - - //$jIRI("#playerLdt").append("
hello
"); - - - $jIRI("#"+divId).append("
\n
\n
\n
\n
\n Get flash to see this player \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
"); - loadJson(width,height,file); - } - - - - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - API player */ - - - function APIplayer (){ - - } - - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - Class Media - - - "http://advene.liris.cnrs.fr/ns/frame_of_reference/ms":"o=0", - "id":"kia_closeup", - "url":"D:/Thibaut/Outils_techno/IRI-LignesDeTemps/media/video/kia_closeup_BQ.flv", - "dc:creator":"tcavalie", - "dc:created":"2010-05-04T00:00:00", - "dc:contributor":"tcavalie", - "dc:modified":"2010-05-04T00:00:00", - "dc:creator.contents":"Abbas Kiarostami", - "dc:created.contents":"1990", - "dc:title":"Close Up is a very very long title", - "dc:description":"Analyse de Close Up", - "dc:duration":"689266" - */ - function Media (id,url,duration,title,description){ - this.id = id; - this.url = url; - this.title = title; - this.description = description; - this.duration = duration; - - this.lignes = new Array(); - this.updatePlayer = updatePlayerMedia; - this.getDuration = getMediaDuration; - this.createPlayer = createPlayerMedia; - - trace("Media ID :",id); - trace("Media URL :",this.url); - trace("- content : color",url); - trace("- content : audio",title); - } - function createPlayerMedia(width,height){ - createPlayer(width,height,this.url,this.duration); - createInterface(width,height,this.duration); - } - function updatePlayerMedia(){ - - } - function getMediaDuration(){ - return (this.duration); - } - function getMediaTitle(){ - return (this.title); - } - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - Class Ligne (annotationType) - - "id":"dp_1", - "dc:creator":"tcavalie", - "dc:created":"2010-04-04T19:09:44", - "dc:contributor":"perso", - "dc:modified":"15/2/2008", - "dc:title":"dqsdkljfh qklsdhf very very very long", - "dc:description":"sdfg sdfg sdfg sdfg" - */ - function Ligne (){ - this.id = id; - this.title = title; - this.description = description; - this.annotations = new Array(); - this.addAnnotation = addAnnotationligne; - this.clickAnnotation= onClickLigneAnnotation; - this.checkTime = checkTimeLigne; - } - - function Ligne (id,title,description,duration){ - this.id = id; - this.title = title; - this.description = description; - // - this.annotations = new Array(); - this.addAnnotation = addLigneAnnotation; - this.checkTime = checkTimeLigne; - this.duration = duration; - trace("LIGNE ","créer "); - } - - function addLigneAnnotation(id,begin,end,media,title,description,color){ - var myAnnotation = new Annotation(id,begin,end,media,title,description,color,this.duration); - this.annotations.push(myAnnotation); - trace("LIGNE ","add annotation "); - } - - function onClickLigneAnnotation(id){ - player.sendEvent('SEEK', this.start); - } - - function searchLigneAnnotation(id){ - /*for (){ - }*/ - } - - function listAnnotations(){ - - } - - function checkTimeLigne(time){ - var annotationTempo; - for (var i=0; i < this.annotations.length; ++i){ - var annotationTempo = this.annotations[i]; - //trace("check... ",time+" = "+annotationTempo.begin+" -- "+annotationTempo.end); - //if (time>annotationTempo.begin){ - if (time>annotationTempo.begin/1000 && time "; - - - - $toolTipTemplate = "
" - +"
"+this.title+"
" - +"
"+this.begin+" : "+this.end+"
" - +"
"+this.description+"
" - +"
"; - - - $jIRI("
"+$AnnotationTemplate+"
").appendTo("#Annotations"); - $jIRI("#"+this.id).tooltip({ effect: 'slide'}); - - trace(" ### ","ADD ANOTATION : "+this.begin+" "+this.end+" "+this.title+" | "+startPourcent+" | "+endPourcent+" | duration = "+this.duration); - } - - function tootTipAnnotation() { - // 1 chercher le div correspondant - // 2 y mettre les information - return this.color + ' ' + this.type + ' apple'; - } - - function onRollOverAnnotation(){ - this.tootTip(); - } - - function timeToPourcent(time,timetotal){ - return (parseInt(Math.round(time/timetotal*100))); - } - - -/* ---------------------------------------------------------------- - ---------------------------------------------------------------- - Class tracess */ - - function Tracer (){ - - } - - function addTrace(){ - - } - - - \ No newline at end of file