Changeset e056e56 in Klonkt


Ignore:
Timestamp:
06/20/2026 04:31:01 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
8d43aa1
Parents:
71e8fa5
Message:

fix(player): YT album via queue expansion (reliable playback)

loadPlaylist did not start reliably. Now a YT album expands into our own
queue of individual YT tracks (playYouTubeList) — each via loadVideoById
(proven) and next/prev/ended via our queue. busters audio-player.js?v=25,
embed-player.js?v=14.

Co-Authored-By: Claude <noreply@…>

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/assets/js/audio-player.js

    r71e8fa5 re056e56  
    968968  }
    969969
     970  // Speel een YouTube-AFSPEELLIJST af door 'm te expanderen naar onze eigen queue
     971  // van losse YouTube-tracks (elk via loadVideoById = bewezen betrouwbaar; next/
     972  // prev/ended lopen via onze queue). items = [{yt,title,cover,postUrl}, …].
     973  function playYouTubeList(items, startIndex) {
     974    if (!Array.isArray(items) || !items.length) return;
     975    setQueue(items.map((it) => ({
     976      yt: it.yt,
     977      title: it.title || 'YouTube',
     978      artist: it.artist || '',
     979      cover: it.cover || '',
     980      postUrl: it.postUrl || '',
     981    })), startIndex || 0);
     982  }
     983
    970984  window.pcmsAudioPlayer = {
    971     setQueue, play, pause, next, prev, close, openSheet, closeSheet, playYouTube,
     985    setQueue, play, pause, next, prev, close, openSheet, closeSheet, playYouTube, playYouTubeList,
    972986    isPlaying: () => isPlaying,
    973987    currentTrack: () => queue[currentIndex] || null,
  • src/assets/js/embed-player.js

    r71e8fa5 re056e56  
    464464
    465465    function playAt(i) {
    466       if (!(window.pcmsAudioPlayer && window.pcmsAudioPlayer.playYouTube)) return;
    467       const tt = (olEl.querySelector(`[data-yt-index="${i}"] .pat-title`) || {}).textContent || '';
    468       window.pcmsAudioPlayer.playYouTube({ list: listId, index: i, title: tt, cover: thumb(ids[i]), postUrl: location.pathname + location.search });
     466      if (!(window.pcmsAudioPlayer && window.pcmsAudioPlayer.playYouTubeList)) return;
     467      // Expandeer naar losse YT-tracks (betrouwbaarder dan loadPlaylist).
     468      const items = ids.map((id, j) => ({
     469        yt: id,
     470        title: (olEl.querySelector(`[data-yt-index="${j}"] .pat-title`) || {}).textContent || ('Track ' + (j + 1)),
     471        cover: thumb(id),
     472        postUrl: location.pathname + location.search,
     473      }));
     474      window.pcmsAudioPlayer.playYouTubeList(items, i);
    469475    }
    470476    coverBtn.addEventListener('click', () => playAt(0));
  • src/views/shell.ejs

    r71e8fa5 re056e56  
    300300     ?v=N — cache-buster: bump bij elke audio-player.js wijziging zodat
    301301     Cloudflare (max-age=1y) niet de oude versie blijft serveren. -->
    302 <script src="/assets/js/audio-player.js?v=24"></script>
     302<script src="/assets/js/audio-player.js?v=25"></script>
    303303<!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) via de echte
    304304     player-API's + gedeelde mutual-exclusion registry met de site-speler. -->
    305 <script src="/assets/js/embed-player.js?v=13" defer></script>
     305<script src="/assets/js/embed-player.js?v=14" defer></script>
    306306<% if (site && site.enable_audio_player && audioTracks && audioTracks.length > 0) { %>
    307307  <script>window.PCMS_SITE_TRACKS = <%- JSON.stringify(audioTracks) %>;</script>
Note: See TracChangeset for help on using the changeset viewer.