X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8ce01151b83453d8ccaa142178745e847b44cdb5..7b8667f75ce0d04e5c6accec9ecff8f621abf26a:/src/catalogue/static/player/2022_player.js diff --git a/src/catalogue/static/player/2022_player.js b/src/catalogue/static/player/2022_player.js index f6dc06965..c72726188 100644 --- a/src/catalogue/static/player/2022_player.js +++ b/src/catalogue/static/player/2022_player.js @@ -4,7 +4,6 @@ $.jPlayer.timeFormat.showHour = true; $(".jp-jplayer").each(function() { - console.log('starting player') var $self = $(this); var $root = $self.parent(); var $currentMedia = null @@ -12,7 +11,43 @@ var speed = 1; var totalDurationLeft = 0; var lastUpdate = 0; + var player = null; + + var setMedia = function(elem, time=0) { + var media = {} + + media['mp3'] = elem.attr('data-mp3'); + media['oga'] = elem.attr('data-ogg'); + media['id'] = elem.attr('data-media-id'); + + $(".c-player__head", $root).html( + $(".attribution", elem).html()) + ; + $(".c-player__info", $root).html( + $(".title", elem).html() + ); + $(".c-media__caption .content", $root).html($(".project-description", elem).html()); + $(".c-media__caption .license", $root).html($(".license", elem).html()); + $(".c-media__caption .project-logo", $root).html($(".project-icon", elem).html()); + + player.jPlayer("setMedia", media); + player.jPlayer("option", "playbackRate", speed); + player.jPlayer("pause", time); + + $currentMedia = elem; + $(".play-next", $root).prop("disabled", !elem.next().length); + + let du = elem.data('duration'); + currentDuration = du; + elem.nextAll().each(function() { + du += $(this).data('duration'); + }); + totalDurationLeft = du; + + return player; + }; + $self.jPlayer({ swfPath: "/static/js/contrib/jplayer/", solution: "html,flash", @@ -21,69 +56,53 @@ useStateClassSkin: true, ready: function() { - var player = $(this); - console.log(1); - - var setMedia = function(elem, time=0) { - console.log('setMedia', elem, time); - var media = {} - - media['mp3'] = elem.attr('data-mp3'); - media['oga'] = elem.attr('data-ogg'); - media['id'] = elem.attr('data-media-id'); - - $(".c-player__head", $root).html( - $(".attribution", elem).html()) - ; - $(".c-player__info", $root).html( - $(".title", elem).html() - ); - $(".c-media__caption .content", $root).html($(".project-description", elem).html()); - $(".c-media__caption .license", $root).html($(".license", elem).html()); - $(".c-media__caption .project-logo", $root).html($(".project-icon", elem).html()); - - player.jPlayer("setMedia", media); - $("audio")[0].playbackRate = speed; - player.jPlayer("pause", time); - - $currentMedia = elem; - $(".play-prev", $root).prop("disabled", !elem.prev().length); - $(".play-next", $root).prop("disabled", !elem.next().length); - - let du = elem.data('duration'); - currentDuration = du; - elem.nextAll().each(function() { - du += $(this).data('duration'); - }); - totalDurationLeft = du; - - return player; - }; + player = $(this); let selectItem = $('.c-select li'); selectItem.on('click', function() { let speedStr = $(this).data('speed'); speed = parseFloat(speedStr); - $("audio")[0].playbackRate = speed; + player.jPlayer("option", "playbackRate", speed); localStorage['audiobook-speed'] = speedStr; + _paq.push(['trackEvent', 'audiobook', 'speed', speedStr]); }); + $('.jp-play', $root).click(function() { + _paq.push(['trackEvent', 'audiobook', 'play']); + }); + $('.jp-seek-bar', $root).click(function() { + _paq.push(['trackEvent', 'audiobook', 'seek']); + }); + $('.jp-mute', $root).click(function() { + _paq.push(['trackEvent', 'audiobook', 'mute']); + }); + $('.jp-volume-bar', $root).click(function() { + _paq.push(['trackEvent', 'audiobook', 'volume']); + }); + $('.play-next', $root).click(function() { let p = $currentMedia.next(); if (p.length) { setMedia(p).jPlayer("play"); + _paq.push(['trackEvent', 'audiobook', 'next']); } }); $('.play-prev', $root).click(function() { let p = $currentMedia.prev(); if (p.length) { setMedia(p).jPlayer("play"); + _paq.push(['trackEvent', 'audiobook', 'prev']); + } else { + // If in first part, restart it. + setMedia($currentMedia).jPlayer("play"); + _paq.push(['trackEvent', 'audiobook', 'rewind']); } }); $('.jp-playlist li', $root).click(function() { setMedia($(this)).jPlayer("play"); $('.c-player__chapters').removeClass('is-active'); + _paq.push(['trackEvent', 'audiobook', 'chapter']); }); var initialElem = $('.jp-playlist li', $root).first(); @@ -135,7 +154,6 @@ audiobooks = {}; } if (t && event.jPlayer.status.duration - t > 10) { - console.log('writer'); audiobooks[$root.attr("data-book-slug")] = [ Date.now(), event.jPlayer.status.media.id, @@ -149,6 +167,14 @@ localStorage["audiobook-history"] = JSON.stringify(audiobooks); lastUpdate = t; } + }, + + + ended: function(event) { + let p = $currentMedia.next(); + if (p.length) { + setMedia(p).jPlayer("play"); + } } }); });