forked from abhiram1808/MusicPlayer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
51 lines (44 loc) · 1.98 KB
/
script.js
File metadata and controls
51 lines (44 loc) · 1.98 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
45
46
47
48
49
50
51
// Grab elements
const playPauseBtn = document.getElementById("playPauseBtn");
const audio = document.getElementById("audio");
const progressBar = document.getElementById("progress");
const currentTimeDisplay = document.getElementById("currentTime");
const durationDisplay = document.getElementById("duration");
const volumeControl = document.getElementById("volume");
// Play/Pause functionality
playPauseBtn.addEventListener("click", () => {
if (audio.paused) {
audio.play();
playPauseBtn.textContent = "Pause";
} else {
audio.pause();
playPauseBtn.textContent = "Play";
}
});
// Update progress bar as the song plays
audio.addEventListener("timeupdate", () => {
const progress = (audio.currentTime / audio.duration) * 100;
progressBar.value = progress;
// Format time for current and total duration
const currentMinutes = Math.floor(audio.currentTime / 60);
const currentSeconds = Math.floor(audio.currentTime % 60);
currentTimeDisplay.textContent = `${currentMinutes}:${currentSeconds < 10 ? "0" + currentSeconds : currentSeconds}`;
const durationMinutes = Math.floor(audio.duration / 60);
const durationSeconds = Math.floor(audio.duration % 60);
durationDisplay.textContent = `${durationMinutes}:${durationSeconds < 10 ? "0" + durationSeconds : durationSeconds}`;
});
// Update audio time when progress bar is moved
progressBar.addEventListener("input", () => {
const value = progressBar.value;
audio.currentTime = (value / 100) * audio.duration;
});
// Volume control
volumeControl.addEventListener("input", () => {
audio.volume = volumeControl.value / 100;
});
// Ensure duration display is updated when the audio is loaded
audio.addEventListener("loadeddata", () => {
const durationMinutes = Math.floor(audio.duration / 60);
const durationSeconds = Math.floor(audio.duration % 60);
durationDisplay.textContent = `${durationMinutes}:${durationSeconds < 10 ? "0" + durationSeconds : durationSeconds}`;
});