while (!songElement.classList.contains("song"))
{
songElement = songElement.parentElement;
- console.log(songElement);
}
m_songIndex = m_allSongs.indexOf(songElement);
playCurrentSong();
function playCurrentSong() {
var song = m_allSongs[m_songIndex];
- console.log(song);
var songData = JSON.parse(song.dataset.song);
var player = document.getElementById("player")
artist.textContent = songData.username;
artist.href = `/users/${songData.username}`;
artist.hidden = false;
+
+ if ("mediaSession" in navigator) {
+ navigator.mediaSession.metadata = new MediaMetadata({
+ title: songData.title,
+ artist: songData.username,
+ album: "Little Song Place",
+ artwork: [{src: "/static/lsp_notes.png"}],
+ });
+ navigator.mediaSession.setActionHandler('nexttrack', () => {
+ songNext();
+ });
+
+ navigator.mediaSession.setActionHandler('previoustrack', () => {
+ songPrevious();
+ });
+
+ navigator.mediaSession.setActionHandler('play', async () => {
+ songPlayPause();
+ });
+
+ navigator.mediaSession.setActionHandler('pause', () => {
+ songPlayPause();
+ });
+ }
}
// Play or pause the current song in the player
// Song queue
for (const element of document.getElementsByClassName("song")) {
- console.log(element);
m_allSongs.push(element);
}
});
- Additional song info in player (collabs, description, tags)
- Tips and Tricks (or html helper for bio/descriptions?)
- Multiline/html descriptions
+- Profile pictures
- Dark mode/site color customization
- Admin accounts
- Account deletion