Music album web page generator
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

66 líneas
2.1 KiB

  1. var current = undefined
  2. const progressMargin = 50;
  3. var progress = undefined;
  4. window.addEventListener('DOMContentLoaded', (event) => {
  5. // progress = document.getElementById('player-progress');
  6. // document.getElementById('player-progress').addEventListener('click', (e) => {
  7. // if(current){
  8. // let media = current.getElementsByTagName('audio')[0];
  9. // media.currentTime = e.layerX * media.duration / progress.offsetWidth;
  10. //
  11. // }
  12. // });
  13. //
  14. // let toggler = document.getElementById('player-toggler');
  15. // toggler.setAttribute('title','afficher/masquer la liste des morceaux');
  16. // toggler.addEventListener('click', (e) => {
  17. // document.getElementsByTagName('ul')[0].classList.toggle('invisible');
  18. // })
  19. });
  20. function togglePlay(src) {
  21. let media = src.getElementsByTagName('audio')[0];
  22. let icon = src.getElementsByTagName('img')[0];
  23. if (current){//stops current media and reset its play icon
  24. pause();
  25. }
  26. if(current != src){
  27. //sets current media icon and plays media
  28. icon.setAttribute('src','assets/pause.png');
  29. media.play();
  30. progress.max = Math.floor(media.duration);
  31. current = src;
  32. document.getElementById('time-info').style.visibility = 'visible';
  33. }
  34. else{
  35. current = undefined;
  36. }
  37. }
  38. function pause(){
  39. current.getElementsByTagName('audio')[0].pause();
  40. current.getElementsByTagName('img')[0].setAttribute('src','assets/play.png');
  41. document.getElementById('time-info').style.visibility = 'hidden';
  42. }
  43. function updateProgress(media){
  44. progress.value = Math.floor(media.currentTime);
  45. document.getElementById('time-info').innerHTML =
  46. prettyDuration(media.currentTime) + ' / ' + prettyDuration(media.duration);
  47. }
  48. function prettyDuration(duration) {
  49. let sec = Math.floor( duration );
  50. let min = Math.floor( sec / 60 );
  51. min = min >= 10 ? min : '0' + min;
  52. sec = Math.floor( sec % 60 );
  53. sec = sec >= 10 ? sec : '0' + sec;
  54. return min + ':' + sec;
  55. }
  56. function togglePlayer(playerId, dpiId){
  57. document.getElementById(playerId).classList.toggle('hidden');
  58. document.getElementById(dpiId).classList.toggle('clicked');
  59. }