From 810744d69cb10fe1ba45821f0137e9964df4ab72 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 8 Apr 2016 14:20:18 +0200 Subject: [PATCH] add playlist and player --- app/festival/static/js/player.js | 44 +++++++++++++++++++ .../festival/inc/audio_playlist.html | 13 +++++- 2 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 app/festival/static/js/player.js diff --git a/app/festival/static/js/player.js b/app/festival/static/js/player.js new file mode 100644 index 00000000..ea10e00f --- /dev/null +++ b/app/festival/static/js/player.js @@ -0,0 +1,44 @@ + /** + * Audio player + */ + +function init_player(){ + var audio; + var playlist; + var tracks; + var current; + + current = 0; + audio = $('#audio'); + playlist = $('#playlist'); + tracks = playlist.find('li a'); + len = tracks.length - 1; + audio[0].volume = .90; +// audio[0].play(); + playlist.find('a').click(function(e){ + e.preventDefault(); + link = $(this); + current = link.parent().index(); + run_player(link, audio[0]); + }); + audio[0].addEventListener('ended',function(e){ + current++; + if(current == len){ + current = 0; + link = playlist.find('a')[0]; + }else{ + link = playlist.find('a')[current]; + } + run_player($(link),audio[0]); + }); +} +function run_player(link, player){ + $(player).find('#primarysrc').attr('src', link.attr('href')); + $(player).find('#secondarysrc').attr('src', link.attr('data-altsrc')); + par = link.parent(); + par.addClass('active').siblings().removeClass('active'); + player.load(); + player.play(); +} + +init_player(); diff --git a/app/festival/templates/festival/inc/audio_playlist.html b/app/festival/templates/festival/inc/audio_playlist.html index b7016764..4a27ae9b 100644 --- a/app/festival/templates/festival/inc/audio_playlist.html +++ b/app/festival/templates/festival/inc/audio_playlist.html @@ -2,13 +2,22 @@ {% for audio in playlist.audios.all %} {% if forloop.first %} -

{{ audio.title }}

-