3 "FLAC": "audio/x-flac",
9 var audio
, details
, start
, data
;
11 function load_song (id
) {
12 audio
.style
.display
= "inline";
14 var old_sources
= document
.getElementsByTagName("source");
15 while(old_sources
.length
)
16 old_sources
[0].parentNode
.removeChild(old_sources
[0]);
18 for (var i
= 0 ; i
< song
.formats
.length
; i
++){
19 var source
= document
.createElement("source");
20 var type
= TYPES
[song
.formats
[i
].format
];
21 source
.setAttribute("type", type
);
22 source
.setAttribute("src", song
.formats
[i
].file
);
23 audio
.appendChild(source
);
26 details
.innerHTML
= "Now playing: " + song
.artist
+ " - " + song
.title
;
30 function play_random () {
31 start
.innerHTML
= "Next";
32 var id
= Math
.floor(Math
.random() * data
.length
);
37 function make_onclick_handler (id
){
40 start
.innerHTML
= "Next";
45 window
.onload = function () {
46 var container
= document
.getElementById("player");
47 container
.innerHTML
= '<div id="details"></div> <button id="start_player">Play a random song</button> (or click a song title)<br><audio id="audio" controls></audio>';
48 audio
= document
.getElementById("audio");
49 details
= document
.getElementById("details");
50 start
= document
.getElementById("start_player");
53 var trs
= document
.querySelectorAll("tbody tr");
54 for (var i
= 0 ; i
< trs
.length
; i
++) {
57 "artist": tr
.getElementsByClassName("artist")[0].textContent
,
58 "title": tr
.getElementsByClassName("title")[0].textContent
,
61 var formats
= tr
.getElementsByClassName("formats")[0].getElementsByTagName("a");
62 for (var j
= 0 ; j
< formats
.length
; j
++) {
63 var format
= formats
[j
];
65 "format": format
.textContent
,
66 "file": format
.getAttribute("href")
70 tr
.getElementsByClassName("title")[0].onclick
= make_onclick_handler(i
);
73 audio
.style
.display
= "none";
74 audio
.addEventListener('ended', play_random
);
75 audio
.addEventListener('error', play_random
);
76 start
.addEventListener('click', play_random
);
This page took 0.026582 seconds and 5 git commands to generate.