Hörbuchmodus im Dauerloop

Hallo zusammen,

ich habe eine Reihe von Kinder-CDs (z.B. Paw Patrol) im Hörbuchmodus konfiguriert. Sie laufen aber leider in Dauerschleife.

Ich weiß, dass das nicht so gedacht ist, aber es ist bei mir bei allen Karten so. Weiß jemand einen Ansatzpunkt, um das zu ändern? Gab es vielleicht in einer Version eine Änderung?

Viele Grüße, Henning

Im Hörbuchmodus werden alle Tracks in dem Ordner hintereinander gespielt und der Fortschritt (aktueller Track) gespeichert. Die Verschiedenen Modi sind hier Übersicht der Bedienung noch einmal beschrieben.
Wenn das Verhalten nicht der Beschreibung des Modus’ entspricht, schau doch mal was die Konsole bei Auflegen der Karte anzeigt.

Nach Beendigung wird der Ordner noch einmal von vorne wiedergegeben (usw.)

Wie sieht denn die Ausgabe der Konsole dann aus? Bei mir spielt die Box nicht weiter. Hier mal die Ausgabe ab dem letzten Track (in meinem Fall 18)

22:48:16.787 -> Hörbuch Modus ist aktiv -> nächster Track und Fortschritt speichern18
22:53:22.714 -> 711
22:53:22.714 -> === nextTrack()
22:53:22.714 -> === setstandbyTimer()
22:53:22.714 -> 0

So, jetzt habe ich einmal die Konsole angeschlossen. Wenn ich einen Track überspringe, funktioniert alles so wie es sollte. Merkwürdig.

Card UID: 32 AB AD EA
PICC type: MIFARE 1KB
Authenticating Classic using key A...
Reading data from block 4 ...
Data on Card :
 13 37 B3 47 01 23 05 00 00 00 00 00 00 00 00 00

=== disablestandby()
2 Dateien in Ordner 35
Horbuch Modus -> kompletten Ordner spielen und Fortschritt    
merken
=== nextTrack()
Horbuch Modus ist aktiv -> nachster Track und Fortschritt        
speichern2
=== nextTrack()
=== setstandbyTimer()
0

Jetzt muss ich Conni wohl ganz durchhören :sleeping:

Oh je, du tust mir Leid :see_no_evil:

Hatte das aber noch nie, dass der Hörspielmodus den Ordner von vorne beginnt. Aber sind auch lange Folgen, welche nicht alle an einem Tag angehört werden…

Edit: wie @Gute_Laune anmerkt, ich meine natürlich den Hörbuchmodus…

Ich habe eben zum schnellen Testen mir erstmal einen Ordner mit Kurzgeschichten rausgesucht. Musik wäre auch gut gewesen aber da habe ich sehr viele Tracks in den Ordnern.
@Manuel Achtung HörBUCHmodus. Das übliche Problem…

Den mein ich doch :see_no_evil:.

1 „Gefällt mir“

Ok, nach 2* „Conni und der fiese Schnupfen“ und Teilen von PawPatrol scheint mir die Pausen-Taste das Problem zu sein. Die Box hört tatsächlich so auf, wie sie soll, fängt dann aber wieder an, wenn ich auf Pause drücke…

D.h., wenn das Abspielen des Ordners beendet ist, geht das Gerät in Standby, Pause ruft disablestandby() auf und der zuletzt gespielte Track wird wieder von vorne begonnen.

Im Single-Modus das gleiche Verhalten

Das Pause den letzten Track nochmal spielt passiert in jedem Modus. Wenn du in
static void nextTrack(uint16_t track) { zu jedem setstandbyTimer(); ein knownCard = false; ergänzt, müsste das Problem verschwinden.

1 „Gefällt mir“

Danke. Ich versuche das morgen einmal.

Hier kommt es regelmäßig zu Konflikten, weil die Hörspiele endlos laufen… Wir brauchen eine Funktion, die einmaliges Anhören erlaubt, aber halt nicht 10x am Stück :wink:

Ich hab da mal einen Vorschlag. Macht euch einen Testordner auf der SD-Karte. In den kopiert ihr aus dem mp3 oder advert Ordner die Dateien 0001 bis 0010. dann natürlich bezüglich der Nummern an die gängigen Regeln der normalen MediaOrdner anpassen, heißt die Nummern in 001 bis 010 ändern. Dann zum Testen diesen Ordner verwenden. Das hat den Vorteil, dass man die Trackfolge in den einzelnen Abspielmodi exakt kontrollieren kann, denn es werden ja nur Nummern angesagt und man muss nicht so viel Zeit aufwenden zum Testen.
Wer die Mglichkeit hat die mp3 files noch zu mergen, kann ja den Nummernansagen noch ein „Testfile“ voranzustellen um die Ansage als Track zu identifizieren und nicht als Systemansage.

Danke für den Tipp. Zu einer anderen Uhrzeit hätte ich mir auch einen passenden Ordner erstellt. Allerdings nicht mit den Zahlen, die Idee ist richtig gut! Wenn ich demnächst einen TonUINO zum Testen und einen zweiten für meine Gute-Nacht-Geschichte habe, werde ich mir da auf jeden Fall so einen Ordner draufpacken.

1 „Gefällt mir“

Es hat geklappt, vielen Dank an alle!

Bei der Gelegenheit habe ich auch gleich intern noch den Datenport mit dem Ladeport verbunden, so dass ich jetzt von außen Zugriff auf die Konsole habe (aber wahrscheinlich brauche ich es jetzt nicht mehr :joy:) .

1 „Gefällt mir“

Moin!
Mir war aufgefallen, dass in der 5-Button-Variante und bei nicht invertierten Buttons in der 3-Button-Variante (also kurzer Druck vor/zurück und langer Druck lauter/leiser) sowohl das nextTrack() als auch das previousTrack() das Abspielen wieder getriggert hat.
Habe das für mich wie folgt gelöst:
vor:
// implement a notification class,
einfügen:
bool playFolderTrue = false;

in der
static void nextTrack(uint16_t track) {

  1. nach:

    if (knownCard == false)
    // Wenn eine neue Karte angelernt wird soll das Ende eines Tracks nicht verarbeitet werden
    return;
    einfügen:
    if (!playFolderTrue) return;

  2. zusätzlich zum neuen knownCard=false; jeweils vor dem
    setstandbyTimer();
    einfügen:
    playFolderTrue=false;

in der
static void previousTrack() {
nach:

  if (activeModifier != NULL)
    if (activeModifier->handlePrevious() == true)
      return;

einfügen:
if (!playFolderTrue) return;

in der
void playFolder() {
nach:
knownCard = true;
einfügen:
playFolderTrue = true;

ersetzen:

if (pauseButton.wasReleased()) {if (activeModifier != NULL)
    if (activeModifier->handlePause() == true)
      return;
  if (ignorePauseButton == false)
    if (isPlaying()) {
      mp3.pause();
      setstandbyTimer();
    }
    else if (knownCard) {
      mp3.start();
      disablestandbyTimer();
    }
  ignorePauseButton = false;
}

durch:

if (pauseButton.wasReleased()) {
  if (activeModifier != NULL)
    if (activeModifier->handlePause() == true)
      return;
  if (ignorePauseButton == false)
    if (isPlaying()) {
      mp3.pause();
      playFolderTrue = false;
      setstandbyTimer();
    }
    else if (knownCard) {
      mp3.start();
      playFolderTrue = true;
      disablestandbyTimer();
    }
  ignorePauseButton = false;
}