Pause fuer YouTube -- und der Bot bleibt draussen, wenn er rausgeht
Zwei Befunde aus dem Betrieb. 1. Der Bot ging aus dem leeren Kanal und kam sofort wieder rein. `stoppen()` hielt erst den Spieler an und loeschte dann aus `laufend`. `player.stop()` meldet den Leerlauf aber SYNCHRON -- gemessen mit @discordjs/voice 0.19: der Idle-Melder laeuft mitten in stop(), noch vor der naechsten Zeile. Er fand den Eintrag also noch, hielt das Ende fuer "Titel vorbei" und schaltete weiter: naechster Titel oder zurueck auf den Heimsender. Von aussen genau das gemeldete Bild. Jetzt wird erst geloescht, dann angehalten. Nachgestellt mit einem echten AudioPlayer und beiden Reihenfolgen -- die Kontrolle ist dabei die alte Reihenfolge: sie schaltet nachweislich weiter (1x), die neue nicht (0x). Ohne diese Gegenprobe koennte der Test etwas ganz anderes messen. 2. Im YouTube-Modus fehlte die Pause. `pausieren()` gibt es jetzt, ausdruecklich nur fuer YouTube. Ein Sender laesst sich nicht sinnvoll anhalten: er laeuft beim Betreiber weiter, waehrend hier die Leitung volllaeuft, und beim Fortsetzen kaeme eine Konserve, die immer weiter hinterherhinkt. Fuer einen Sender heisst Pause Stopp -- dafuer gibt es den Stopp-Knopf, und der Pause-Knopf graut aus. Die verstrichene Zeit rechnet Pausen heraus, sonst liefe der Fortschrittsbalken nach dem Fortsetzen um die Pausenlaenge voraus. `verstrichen()` steht an EINER Stelle, die sich Discord-Tafel und Panel teilen -- zwei Rechnungen waeren zwei Gelegenheiten, die Pause zu vergessen. Die Musik-Tafel bekommt eine zweite Knopfreihe: mit der Pause waeren es sechs Knoepfe, Discord laesst fuenf je Reihe zu. Platz ist reichlich (vier von fuenf Reihen), und die Trennung ist ohnehin sinnvoller -- oben, was gerade klingt, unten, was mit der Liste passiert. Nachgezaehlt: 2 Reihen ohne Liste, 4 mit. Beim Quellenwechsel wird ausdruecklich fortgesetzt: der Spieler ueberlebt den Wechsel, und stand er auf Pause, waere der neue Titel stumm gestartet waehrend der Eintrag "laeuft" sagt. Nebenbei: mein Feld-Abgleich hielt eine zweite Kopie der Feldliste von `radioStand()` und driftete beim ersten neuen Feld prompt ab -- er meldete `pausiert` als fehlend, obwohl die API es liefert. Er liest die Form jetzt aus der Quelle, statt sie doppelt zu pflegen.
This commit is contained in:
@@ -2224,6 +2224,7 @@ export default function Settings({ me }) {
|
||||
</span>
|
||||
<div className="radio-now-text">
|
||||
<strong>
|
||||
{radio.laeuft.pausiert && '⏸️ '}
|
||||
{radio.laeuft.art === 'youtube'
|
||||
? radio.laeuft.titel
|
||||
: radio.laeuft.sender}
|
||||
@@ -2321,6 +2322,14 @@ export default function Settings({ me }) {
|
||||
<option key={x.id} value={x.id}>{x.emoji || '📻'} {x.name}</option>
|
||||
))}
|
||||
</select>
|
||||
{/* Pause gibt es nur bei YouTube: ein Dauerstrom laeuft
|
||||
beim Sender weiter, waehrend hier die Leitung volllaeuft --
|
||||
beim Fortsetzen kaeme eine Konserve, die hinterherhinkt. */}
|
||||
<button className="btn btn-ghost"
|
||||
disabled={radioLaedt || radio.laeuft?.art !== 'youtube'}
|
||||
onClick={() => radioSteuern('pause')}>
|
||||
{radio.laeuft?.pausiert ? '▶️ Weiter' : '⏸️ Pause'}
|
||||
</button>
|
||||
<button className="btn btn-ghost" disabled={radioLaedt || !radio.laeuft}
|
||||
onClick={() => radioSteuern('skip')}>
|
||||
⏭️ Überspringen
|
||||
|
||||
Reference in New Issue
Block a user