Изменил метод получения ссылки на аудио, чтобы можно было логгировать прослушивание

This commit is contained in:
Viner Abubakirov
2026-01-07 12:41:54 +05:00
parent 94afc5dc56
commit ad1267bd43
8 changed files with 103 additions and 19 deletions

View File

@@ -53,12 +53,13 @@ document.addEventListener('DOMContentLoaded', function () {
updateProgressUI(0, audioPlayer.duration);
});
function updateMediaSession(title, artist) {
function updateMediaSession(title, artist, coverImage) {
if (!('mediaSession' in navigator)) return;
navigator.mediaSession.metadata = new MediaMetadata({
title: title,
artist: artist
artist: artist,
artwork: [coverImage ? { src: coverImage, sizes: '512x512', type: 'image/png' } : null].filter(Boolean),
});
navigator.mediaSession.setActionHandler('play', () => audioPlayer.play());
@@ -81,25 +82,32 @@ document.addEventListener('DOMContentLoaded', function () {
currentIndex = index;
const item = trackItems[index];
const src = item.dataset.trackSrc;
const title = item.querySelector('.track-title').textContent;
const artist = item.querySelector('.track-artist').textContent.split(': ')[1];
const api = item.dataset.trackSrc;
fetch(api)
.then(response => response.json())
.then(data => {
const src = data.url;
const title = data.title;
const artist = data.album.artist.name;
const coverImage = data.album.cover_image;
resetActiveTrack();
item.classList.add('active');
updateUI(title, artist);
resetActiveTrack();
item.classList.add('active');
updateUI(title, artist, coverImage);
// ---------------------------
// ВЫЗОВ Media Session API
updateMediaSession(title, artist, coverImage);
// ---------------------------
// ---------------------------
// ВЫЗОВ Media Session API
// ---------------------------
updateMediaSession(title, artist);
// ---------------------------
audioPlayer.src = src;
audioPlayer.title = artist + ' - ' + title;
audioPlayer.play().catch(err => console.log(err));
audioPlayer.src = src;
audioPlayer.title = artist + ' - ' + title;
audioPlayer.play().catch(err => console.log(err));
updatePlayButton(true);
updatePlayButton(true);
})
.catch(err => console.log(err));
}
// Клик по треку