// HTML5 audio player + playlist controls... // Inspiration: http://jonhall.info/how_to/create_a_playlist_for_html5_audio // Mythium Archive: https://archive.org/details/mythium/ jQuery(function ($) { 'use strict' var supportsAudio = !!document.createElement('audio').canPlayType; if (supportsAudio) { var index = 0, playing = false, extension = '', mediaPath = 'audio/all/', tracks = JSON.parse('[{"name":"Schreinermans Beat","length":"3:23","track":"1","file":"Schreinerman%27s%20Beat.m4a"},{"name":"Retrospection","length":"5:58","track":"2","file":"Retrospection.m4a"},{"name":"Sundown In Paradise","length":"7:24","track":"3","file":"Sundown%20in%20Paradise.m4a"},{"name":"Ups n' Downs","length":"5:50","track":"4","file":"Ups%20%27n%20Downs.m4a"},{"name":"Chillout","length":"7:06","track":"5","file":"Chillout.m4a"},{"name":"Heartbeat","length":"4:24","track":"6","file":"Heartbeat.m4a"},{"name":"Breaking Sun.m4a","length":"3:58","track":7,"file":"Breaking%20Sun.m4a"},{"name":"Machtlos","length":"4:52","track":"8","file":"Machtlos.m4a"},{"name":"Space","length":"5:14","track":"9","file":"Space.m4a"},{"name":"Color.m4a","length":"4:17","track":10,"file":"Color.m4a"},{"name":"F\u00fcr Lea - gef\u00fchlsvolle Version.m4a","length":"3:55","track":11,"file":"F\u00fcr%20Lea%20-%20gef\u00fchlsvolle%20Version.m4a"},{"name":"Heat","length":"4:44","track":"12","file":"Heat.m4a"},{"name":"Life Goes On And On With A Star (Always) By My Side","length":"5:23","track":"13","file":"Life%20goes%20on%20and%20on%20with%20a%20star%20(always)%20by%20my%20side.m4a"},{"name":"Halloween.m4a","length":"3:03","track":14,"file":"Halloween.m4a"},{"name":"Journey","length":"8:00","track":"15","file":"Journey.m4a"},{"name":"Back to the 80's Tributes To The 80's","length":"2:49","track":"16","file":"Back%20to%20the%2080%27s%20-%20Tributes%20to%20the%2080%27s.m4a"},{"name":"Time Flies","length":"3:59","track":"17","file":"Time%20Flies.m4a"},{"name":"Intoxication of Happiness.m4a","length":"6:04","track":18,"file":"Intoxication%20of%20Happiness.m4a"},{"name":"Solid","length":"5:02","track":"19","file":"Solid.m4a"},{"name":"Rainy","length":"3:29","track":"20","file":"Rainy.m4a"},{"name":"Live goes on and on with a star by my side - Remix.m4a","length":"7:26","track":21,"file":"Live%20goes%20on%20and%20on%20with%20a%20star%20by%20my%20side%20-%20Remix.m4a"},{"name":"Loss of Orientation.m4a","length":"4:11","track":22,"file":"Loss%20of%20Orientation.m4a"},{"name":"NO WAR","length":"5:25","track":24,"file":"NO%20WAR.m4a"},{"name":"Out Of The Darkness.m4a","length":"7:19","track":25,"file":"Out%20Of%20The%20Darkness.m4a"},{"name":"Phoenix.m4a","length":"8:05","track":26,"file":"Phoenix.m4a"},{"name":"Surreal.m4a","length":"6:46","track":33,"file":"Surreal.m4a"},{"name":"The Final Sprint.m4a","length":"5:23","track":34,"file":"The%20Final%20Sprint.m4a"},{"name":"The dishes washer.m4a","length":"2:27","track":35,"file":"The%20dishes%20washer.m4a"},{"name":"intoxication of happiness (remix).m4a","length":"7:00","track":38,"file":"intoxication%20of%20happiness%20(remix).m4a"},{"name":"para mi.m4a","length":"8:08","track":39,"file":"para%20mi.m4a"}]'), buildPlaylist = $.each(tracks, function(key, value) { var trackNumber = value.track, trackName = value.name, trackLength = value.length; if (trackNumber.toString().length === 1) { trackNumber = '0' + trackNumber; } else { trackNumber = '' + trackNumber; } $('\#plList').append('
  • ' + trackNumber + '.
    ' + trackName + '
    ' + trackLength + '
  • '); }), trackCount = tracks.length, npAction = $('\#npAction'), npTitle = $('\#npTitle'), audio = $('\#audio1').bind('play', function () { playing = true; npAction.text('Now Playing...'); }).bind('pause', function () { playing = false; npAction.text('Paused...'); }).bind('ended', function () { npAction.text('Paused...'); if ((index + 1) < trackCount) { index++; loadTrack(index); audio.play(); } else { audio.pause(); index = 0; loadTrack(index); } }).get(0), btnPrev = $('\#btnPrev').click(function () { if ((index - 1) > -1) { index--; loadTrack(index); if (playing) { audio.play(); } } else { audio.pause(); index = 0; loadTrack(index); } }), btnNext = $('\#btnNext').click(function () { if ((index + 1) < trackCount) { index++; loadTrack(index); if (playing) { audio.play(); } } else { audio.pause(); index = 0; loadTrack(index); } }), li = $('\#plList li').click(function () { var id = parseInt($(this).index()); if (id !== index) { playTrack(id); } }), loadTrack = function (id) { $('.plSel').removeClass('plSel'); $('\#plList li:eq(' + id + ')').addClass('plSel'); npTitle.text(tracks[id].name); index = id; audio.src = mediaPath + tracks[id].file + extension; }, playTrack = function (id) { loadTrack(id); audio.play(); }; extension = '';//audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : ''; loadTrack(index); } }); //initialize plyr plyr.setup($('\#audio1'), {});