-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathupload.js
More file actions
44 lines (40 loc) · 1.37 KB
/
upload.js
File metadata and controls
44 lines (40 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const fileUpload = document.getElementById("file-upload");
const playlist = document.getElementById("playlist");
const audio = new Audio();
const uploadText = document.getElementById("upload-text");
let tracks = [];
fileUpload.addEventListener("change", (event) => {
const files = Array.from(event.target.files);
if (files.length > 0) {
uploadText.textContent = files
.map((file) => file.name.replace(/\.(mp3|m4a)$/i, ""))
.join(", ");
} else {
uploadText.textContent = "Choose Files";
}
files.forEach((file, index) => {
const listItem = document.createElement("li");
listItem.classList.add("playlist-item");
listItem.textContent = file.name.replace(/\.(mp3|m4a)$/i, ""); // removes file extension shit like mp3 mp4a
listItem.addEventListener("click", () => playTrack(index));
playlist.appendChild(listItem);
tracks.push({
name: file.name.replace(/\.(mp3|m4a)$/i, ""),
file: URL.createObjectURL(file),
});
});
});
function playTrack(index) {
const track = tracks[index];
if (track) {
audio.src = track.file;
audio.play();
updateNowPlaying(track.name);
}
}
function updateNowPlaying(trackName) {
const trackTitle = document.getElementById("track-title");
const trackArtist = document.getElementById("track-artist");
trackTitle.textContent = trackName;
trackArtist.textContent = "Uploaded Track";
}