|
- var current = undefined
- const progressMargin = 50;
- var progress = undefined;
- window.addEventListener('DOMContentLoaded', (event) => {
- progress = document.getElementById('player-progress');
- document.getElementById('player-progress').addEventListener('click', (e) => {
- if(current){
- let media = current.getElementsByTagName('audio')[0];
- media.currentTime = e.layerX * media.duration / progress.offsetWidth;
-
- }
- });
-
- let toggler = document.getElementById('player-toggler');
- toggler.setAttribute('title','afficher/masquer la liste des morceaux');
- toggler.addEventListener('click', (e) => {
- document.getElementsByTagName('ul')[0].classList.toggle('invisible');
- })
- });
-
-
- function togglePlay(src) {
- let media = src.getElementsByTagName('audio')[0];
- let icon = src.getElementsByTagName('img')[0];
- if (current){//stops current media and reset its play icon
- pause();
- }
- if(current != src){
- //sets current media icon and plays media
- icon.setAttribute('src','assets/pause.png');
- media.play();
- progress.max = Math.floor(media.duration);
- current = src;
- document.getElementById('time-info').style.visibility = 'visible';
- }
- else{
- current = undefined;
- }
- }
-
- function pause(){
- current.getElementsByTagName('audio')[0].pause();
- current.getElementsByTagName('img')[0].setAttribute('src','assets/play.png');
- document.getElementById('time-info').style.visibility = 'hidden';
- }
-
- function updateProgress(media){
- progress.value = Math.floor(media.currentTime);
- document.getElementById('time-info').innerHTML =
- prettyDuration(media.currentTime) + ' / ' + prettyDuration(media.duration);
- }
-
- function prettyDuration(duration) {
- let sec = Math.floor( duration );
- let min = Math.floor( sec / 60 );
- min = min >= 10 ? min : '0' + min;
- sec = Math.floor( sec % 60 );
- sec = sec >= 10 ? sec : '0' + sec;
- return min + ':' + sec;
- }
|