Responsive Audio Player
Paused...
// Mythium Archive: https://archive.org/details/mythium/
jQuery(function ($) {
'use strict'
var supportsAudio = !!document.createElement('audio').canPlayType;
if (supportsAudio) {
// initialize plyr
var player = new Plyr('#audio1', {
controls: [
'restart',
'play',
'progress',
'current-time',
'duration',
'mute',
'volume',
'download'
]
});
// initialize playlist and controls
var index = 0,
playing = false,
mediaPath = 'https://archive.org/download/mythium/',
extension = '',
tracks = [{
"track": 1,
"name": "All This Is - Joe L.'s Studio",
"duration": "2:46",
"file": "JLS_ATI"
}, {
"track": 2,
"name": "The Forsaken - Broadwing Studio (Final Mix)",
"duration": "8:30",
"file": "BS_TF"
}, {
"track": 3,
"name": "All The King's Men - Broadwing Studio (Final Mix)",
"duration": "5:01",
"file": "BS_ATKM"
}, {
"track": 4,
"name": "The Forsaken - Broadwing Studio (First Mix)",
"duration": "8:31",
"file": "BSFM_TF"
}, {
"track": 5,
"name": "All The King's Men - Broadwing Studio (First Mix)",
"duration": "5:05",
"file": "BSFM_ATKM"
}, {
"track": 6,
"name": "All This Is - Alternate Cuts",
"duration": "2:48",
"file": "AC_ATI"
}, {
"track": 7,
"name": "All The King's Men (Take 1) - Alternate Cuts",
"duration": "5:44",
"file": "AC_ATKMTake_1"
}, {
"track": 8,
"name": "All The King's Men (Take 2) - Alternate Cuts",
"duration": "5:26",
"file": "AC_ATKMTake_2"
}, {
"track": 9,
"name": "Magus - Alternate Cuts",
"duration": "5:46",
"file": "AC_M"
}, {
"track": 10,
"name": "The State Of Wearing Address (fucked up) - Alternate Cuts",
"duration": "5:25",
"file": "AC_TSOWAfucked_up"
}, {
"track": 11,
"name": "Magus - Popeye's (New Years '04 - '05)",
"duration": "5:53",
"file": "PNY04-05_M"
}, {
"track": 12,
"name": "On The Waterfront - Popeye's (New Years '04 - '05)",
"duration": "4:40",
"file": "PNY04-05_OTW"
}, {
"track": 13,
"name": "Trance - Popeye's (New Years '04 - '05)",
"duration": "13:15",
"file": "PNY04-05_T"
}, {
"track": 14,
"name": "The Forsaken - Popeye's (New Years '04 - '05)",
"duration": "8:12",
"file": "PNY04-05_TF"
}, {
"track": 15,
"name": "The State Of Wearing Address - Popeye's (New Years '04 - '05)",
"duration": "7:02",
"file": "PNY04-05_TSOWA"
}, {
"track": 16,
"name": "Magus - Popeye's (Valentine's Day '05)",
"duration": "5:43",
"file": "PVD_M"
}, {
"track": 17,
"name": "Trance - Popeye's (Valentine's Day '05)",
"duration": "10:45",
"file": "PVD_T"
}, {
"track": 18,
"name": "The State Of Wearing Address - Popeye's (Valentine's Day '05)",
"duration": "5:36",
"file": "PVD_TSOWA"
}, {
"track": 19,
"name": "All This Is - Smith St. Basement (01/08/04)",
"duration": "2:48",
"file": "SSB01_08_04_ATI"
}, {
"track": 20,
"name": "Magus - Smith St. Basement (01/08/04)",
"duration": "5:46",
"file": "SSB01_08_04_M"
}, {
"track": 21,
"name": "Beneath The Painted Eye - Smith St. Basement (06/06/03)",
"duration": "13:07",
"file": "SSB06_06_03_BTPE"
}, {
"track": 22,
"name": "Innocence - Smith St. Basement (06/06/03)",
"duration": "5:16",
"file": "SSB06_06_03_I"
}, {
"track": 23,
"name": "Magus - Smith St. Basement (06/06/03)",
"duration": "5:46",
"file": "SSB06_06_03_M"
}, {
"track": 24,
"name": "Madness Explored - Smith St. Basement (06/06/03)",
"duration": "4:51",
"file": "SSB06_06_03_ME"
}, {
"track": 25,
"name": "The Forsaken - Smith St. Basement (06/06/03)",
"duration": "8:43",
"file": "SSB06_06_03_TF"
}, {
"track": 26,
"name": "All This Is - Smith St. Basement (12/28/03)",
"duration": "3:00",
"file": "SSB12_28_03_ATI"
}, {
"track": 27,
"name": "Magus - Smith St. Basement (12/28/03)",
"duration": "6:09",
"file": "SSB12_28_03_M"
}, {
"track": 28,
"name": "Madness Explored - Smith St. Basement (12/28/03)",
"duration": "5:05",
"file": "SSB12_28_03_ME"
}, {
"track": 29,
"name": "Trance - Smith St. Basement (12/28/03)",
"duration": "12:32",
"file": "SSB12_28_03_T"
}, {
"track": 30,
"name": "The Forsaken - Smith St. Basement (12/28/03)",
"duration": "8:56",
"file": "SSB12_28_03_TF"
}, {
"track": 31,
"name": "All This Is (Take 1) - Smith St. Basement (Nov. '03)",
"duration": "4:55",
"file": "SSB___11_03_ATITake_1"
}, {
"track": 32,
"name": "All This Is (Take 2) - Smith St. Basement (Nov. '03)",
"duration": "5:45",
"file": "SSB___11_03_ATITake_2"
}, {
"track": 33,
"name": "Beneath The Painted Eye (Take 1) - Smith St. Basement (Nov. '03)",
"duration": "14:05",
"file": "SSB___11_03_BTPETake_1"
}, {
"track": 34,
"name": "Beneath The Painted Eye (Take 2) - Smith St. Basement (Nov. '03)",
"duration": "13:25",
"file": "SSB___11_03_BTPETake_2"
}, {
"track": 35,
"name": "The Forsaken (Take 1) - Smith St. Basement (Nov. '03)",
"duration": "8:37",
"file": "SSB___11_03_TFTake_1"
}, {
"track": 36,
"name": "The Forsaken (Take 2) - Smith St. Basement (Nov. '03)",
"duration": "8:36",
"file": "SSB___11_03_TFTake_2"
}],
buildPlaylist = $.each(tracks, function(key, value) {
var trackNumber = value.track,
trackName = value.name,
trackDuration = value.duration;
if (trackNumber.toString().length === 1) {
trackNumber = '0' + trackNumber;
}
$('#plList').append('
\
\
' + trackNumber + '. \
' + trackName + ' \
' + trackDuration + ' \
\
');
}),
trackCount = tracks.length,
npAction = $('#npAction'),
npTitle = $('#npTitle'),
audio = $('#audio1').on('play', function () {
playing = true;
npAction.text('Now Playing...');
}).on('pause', function () {
playing = false;
npAction.text('Paused...');
}).on('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').on('click', function () {
if ((index - 1) > -1) {
index--;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
btnNext = $('#btnNext').on('click', function () {
if ((index + 1) < trackCount) {
index++;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
li = $('#plList li').on('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;
updateDownload(id, audio.src);
},
updateDownload = function (id, source) {
player.on('loadedmetadata', function () {
$('a[data-plyr="download"]').attr('href', source);
});
},
playTrack = function (id) {
loadTrack(id);
audio.play();
};
extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';
loadTrack(index);
} else {
// no audio support
$('.column').addClass('hidden');
var noSupport = $('#audio1').text();
$('.container').append('
' + noSupport + '
');
}
});
Aucun commentaire:
Enregistrer un commentaire