Download raw (4.3 KB)
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title>Tuned city</title> <link href='http://fonts.googleapis.com/css?family=Oswald:400,700,300' rel='stylesheet' type='text/css'> <link rel='stylesheet' href='/stylesheets/reset.css' /> <link rel='stylesheet' href='/stylesheets/path.css' /> </head> <body> <div id="logo"> Tuned City Archive<br /><a class="previous" href="/path/">liste</a> </div> <section id="path"> <header> <h1><%= path.title %></h1> </header> <nav id="main-controls"> <div class="slider"><a class="handle" style="left: 10%"></a></div> <span class="btn-play">▸ walk through</span> <span class="btn-previous">prev</span> <span class="btn-next">next</span> <span class="waypoint"><%= path.trackpoints.length %></span> </nav> <% for(var i = 0; i < (path.trackpoints.length - 1); i++) { %> <% var current = path.trackpoints[i]; %> <% var next = path.trackpoints[i + 1]; %> <% var media = current.end.media; %> <section class="annotation"> <%= current.annotation %> </section> <section class="media"> <div class="player" data-media="<%= media.url %>" data-type="<%= media.type %>" data-start="<%= current.end.cursor %>" data-stop="<%= next.start.cursor %>" > </div> <aside class="connexion"> <ul> <li>The Tuning Scores</li> </ul> </aside> </section> <% } %> </section> <footer></footer> <script src="/js/lib/jquery.js"></script> <script src="/javascripts/jquery-ui/js/jquery-ui-1.10.2.custom.js"></script> <script src="/javascripts/jquery.jplayer.min.js"></script> <script> $(document).ready(function(){ var getData = function(attr){ return this.attr('data-'+attr); }; $.fn.getData = getData; var controller = $('#main-controls'); var players = $('.player'); players.each(function(idx, el){ var that = $(this); var media = {}; var mt = that.getData('type').split('/').pop(); var start = that.getData('start'); var stop = that.getData('stop'); media[mt] = that.getData('media'); that.jPlayer({ ready: function(){ $(this).jPlayer("setMedia", media); }, swfPath: "/javascripts/Jplayer.swf", supplied: mt, size: { width: "600px", } }); var status = that.data('jPlayer').status; var player = function(){ that.jPlayer.apply(that, arguments); }; var parent = that.parent(); var control_play = $('<div />') .addClass('control play') .text('play'); var control_pause = $('<div />') .addClass('control pause') .text('pause'); control_play.on('click', function(evt){ player('play', Math.max(start, status.currentTime)); }); control_pause.on('click', function(evt){ player('pause'); }); that.on($.jPlayer.event.play, function(){ control_pause.show(); control_play.hide(); }); that.on($.jPlayer.event.pause, function(){ control_pause.hide(); control_play.show(); }); that.on($.jPlayer.event.timeupdate, function(evt){ if(evt.jPlayer.status.currentTime > stop) { player('stop'); controller.trigger('play', [idx + 1]); } }); parent.append(control_play); parent.append(control_pause); control_pause.hide(); }); }); </script> </body> </html>