@@ -30,7 +30,8 @@ const playPauseToggleEl = document.getElementById("play"),
30
30
songCurrentTimeEl = document . getElementById ( "song-current-time" ) ,
31
31
songImageEl = document . getElementById ( "song-image" ) ,
32
32
loadingEl = document . getElementById ( "loading" ) ,
33
- audioPlayerEl = document . getElementById ( "audio-player" ) ;
33
+ audioPlayerEl = document . getElementById ( "audio-player" ) ,
34
+ muzikkContainerEl = document . getElementById ( "muzikk" ) ;
34
35
35
36
let currentLoopIdx = 0 ;
36
37
@@ -71,9 +72,7 @@ function setMediaSession(videoData) {
71
72
} ) ;
72
73
73
74
navigator . mediaSession . setActionHandler ( "stop" , ( ) => {
74
- audioPlayerEl . pause ( ) ;
75
- audioPlayerEl . currentTime = 0 ;
76
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . play ;
75
+ stopMuzikk ( ) ;
77
76
} ) ;
78
77
79
78
navigator . mediaSession . setActionHandler ( "seekbackward" , ( ) => {
@@ -106,18 +105,31 @@ function setMediaSession(videoData) {
106
105
} ) ;
107
106
}
108
107
108
+ function playMuzikk ( ) {
109
+ audioPlayerEl . play ( ) ;
110
+ playPauseToggleEl . innerHTML = playerButtonsIcons . pause ;
111
+ }
112
+
113
+ function pauseMuzikk ( ) {
114
+ audioPlayerEl . pause ( ) ;
115
+ playPauseToggleEl . innerHTML = playerButtonsIcons . play ;
116
+ }
117
+
118
+ function stopMuzikk ( ) {
119
+ pauseMuzikk ( ) ;
120
+ audioPlayerEl . currentTime = 0 ;
121
+ }
122
+
109
123
function playPauseToggle ( ) {
110
124
if ( audioPlayerEl . paused ) {
111
- audioPlayerEl . play ( ) ;
112
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . pause ;
125
+ playMuzikk ( ) ;
113
126
} else {
114
- audioPlayerEl . pause ( ) ;
115
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . play ;
127
+ pauseMuzikk ( ) ;
116
128
}
117
129
}
118
130
119
131
async function fetchMusic ( youtubeId ) {
120
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . loading ;
132
+ playPauseToggleEl . innerHTML = playerButtonsIcons . loading ;
121
133
document . body . style . cursor = "progress" ;
122
134
Utils . toggleLoading ( ) ;
123
135
@@ -126,10 +138,8 @@ async function fetchMusic(youtubeId) {
126
138
. catch ( ( err ) => console . error ( err ) ) ;
127
139
128
140
if ( audioPlayerEl ) {
129
- audioPlayerEl . pause ( ) ;
130
- audioPlayerEl . currentTime = 0 ;
141
+ stopMuzikk ( ) ;
131
142
}
132
- document . getElementById ( "muzikk" ) . style . display = "block" ;
133
143
audioPlayerEl . src = `/music/${ youtubeId } .mp3` ;
134
144
audioPlayerEl . load ( ) ;
135
145
}
@@ -138,6 +148,7 @@ async function playYTSongById(id, thumbnailUrl, title, artist) {
138
148
const videoData = { id, thumbnailUrl, title, artist } ;
139
149
await fetchMusic ( videoData . id ) ;
140
150
setMediaSession ( videoData ) ;
151
+ showPlayer ( ) ;
141
152
142
153
if ( videoData . title ) {
143
154
songNameEl . innerHTML = videoData . title ;
@@ -158,10 +169,19 @@ async function playYTSongById(id, thumbnailUrl, title, artist) {
158
169
}
159
170
}
160
171
161
- audioPlayerEl . play ( ) ;
172
+ playMuzikk ( ) ;
162
173
songImageEl . style . backgroundImage = `url("${ videoData . thumbnailUrl } ")` ;
163
174
}
164
175
176
+ function showPlayer ( ) {
177
+ muzikkContainerEl . style . display = "block" ;
178
+ }
179
+
180
+ function hidePlayer ( ) {
181
+ muzikkContainerEl . style . display = "none" ;
182
+ audioPlayerEl . stopMuzikk ( ) ;
183
+ }
184
+
165
185
loopEl . addEventListener ( "click" , ( event ) => {
166
186
currentLoopIdx = ( currentLoopIdx + 1 ) % loopModes . length ;
167
187
event . target . src = "/static/images/" + loopModes [ currentLoopIdx ] . icon ;
@@ -196,10 +216,9 @@ audioPlayerEl.addEventListener("loadeddata", (event) => {
196
216
songDurationEl . innerHTML = Utils . formatTime ( duration ) ;
197
217
}
198
218
199
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . pause ;
219
+ playPauseToggleEl . innerHTML = playerButtonsIcons . pause ;
200
220
document . body . style . cursor = "auto" ;
201
221
Utils . toggleLoading ( ) ;
202
- // duration = a.duration;
203
222
} ) ;
204
223
205
224
audioPlayerEl . addEventListener ( "timeupdate" , ( event ) => {
@@ -215,13 +234,11 @@ audioPlayerEl.addEventListener("timeupdate", (event) => {
215
234
audioPlayerEl . addEventListener ( "ended" , ( ) => {
216
235
switch ( loopModes [ currentLoopIdx ] . mode ) {
217
236
case "OFF" :
218
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . play ;
219
- audioPlayerEl . currentTime = 0 ;
237
+ stopMuzikk ( ) ;
220
238
break ;
221
239
case "ONCE" :
222
- document . getElementById ( "play" ) . innerHTML = playerButtonsIcons . pause ;
223
- audioPlayerEl . currentTime = 0 ;
224
- audioPlayerEl . play ( ) ;
240
+ stopMuzikk ( ) ;
241
+ playMuzikk ( ) ;
225
242
break ;
226
243
case "ALL" :
227
244
break ;
@@ -234,4 +251,6 @@ audioPlayerEl.addEventListener("progress", () => {
234
251
235
252
window . Player = {
236
253
playYTSongById,
254
+ showPlayer,
255
+ hidePlayer,
237
256
} ;
0 commit comments