Hörspielmodus - Vor/Zurück Tasten klappen nicht?

Hi Leute,

folgendes Problem: wenn ich Karten im Hörspielmodus konfiguriere (also eine zufällige Datei im Ordner), dann funktionieren die Vor/Zurück Tasten nicht. Sprich, ich kann vom angefangenes Hörspiel nicht zum nächsten springen.

Aber: im Admin-Menü, oder auch bei normalem Albummodus, funktionieren die Tasten einwandfrei.

Wer kann helfen?
Danke

Nicht wirklich. Das ist so gewollt. Schau dir mal die verschiedenen Modi an, vielleicht suchst du dir dann einen anderen

Ansonsten kommst du durch erneutes Auflegen der Karte zu einem anderen Hörspiel.

Oha. Hört der Partymodus denn automatisch nach einer Datei auf zu spielen (das möchte ich)? Oder spielt er weiter bis der ganze Ordner durch ist (das möchte ich nicht, sonst schlafen die Kids ja nie)?

Ist es softwareseitig möglich, dass sich der Hörspielmodus genauso wieder Partymodus verhält? Was müsste ich dafür ändern?
Danke

Wenn er sich genau wie der Partymodus verhält, kannst du den Partymodus nehmen. Was willst du genau erreichen?

Ich habe ca 20 Benjamin Blümchen Folgen, je als Einzeldatei, in einem Ordner. Die Dateien sollen zufällig wiedergegeben werden, und mein Kurzer soll selbst zum nächsten Hörspiel springen können. Es soll aber nach der Wiedergabe natürlich gestoppt werden.

Sprich: im Grunde suche ich den Hörspielmodus, aber ohne Tastensperre.

Um ein anderes Hörspiel zu starten, kann er doch einfach die Karte nochmal auflegen.
Bei der Änderung bin ich gerade nicht sicher, wie leicht sich das Umsetzten lässt. Man müsste dann das nextTrack mit Taste erlauben, aber beim Ende eines Tracks dürfte es ja nicht ausgelöst werden.

Vielleich programmierst du die Karte auf den Shortcut der Weiter-Taste, dann könnte man darüber bei pausierte Wiedergabe ein anderes starten

Das ist aber nicht gerade intuitiv für einen 3-jährigen, wenn in jedem anderen Modus der nächste Track einfach mit der Vorwärts Taste klappt.

Ich möchte das Verhalten aber gerne für jede Hörspielkarte so haben. Wenn morgen die Paw Patrol Hörspiele auf eine neue Karte draufkommen, usw. Da sind Shortcuts nicht so praktisch.

Naja, wenn das Album durch ist, muss auch die Karte neu aufgelegt werden, da gibt es ja auch keinen nächsten Track. Wenn die „CD“ durch ist, muss man halt eine neue einlegen, um eine neue Geschichte zu hören.

Ansonsten musst du wohl selbst versuchen, den Hörspielmodus anzupassen.

Aber mein „Hörspielalbum“ besteht nunmal aus 20 Tracks, wobei jeder Track eine komplette Folge von 45min bedeutet. Daher möchte ich nur einen Track, diesen aber weiter schalten können, und danach automatisch beenden.

Schade, dann gibts das was ich brauche wohl tatsächlich noch nicht…

Das ist auch nicht mal eben geändert. Das Problem ist, dass der Befehl, wenn ein Track zuende gespielt wurde und der, wenn man Weiter drückt der selbe sind. Man müsste die Software also erweitern, damit sie weiß von wo das Signal kam um die beiden Fälle zu unterscheiden.

Es gibt Software-Erweiterungen, die es ermöglichen, die zuletzt abgespielte Karte auf einen Shortcut zu legen. Damit könnte man vielleicht eine Möglichkeit finden, dass sowohl Benjamin also auch Paw Patrol usw sich weiter schalten lassen.

In static void nextTrack(uint16_t track) wird ja verhindert, dass der nächste Track gespielt wird:
Serial.println(F("Hörspielmodus ist aktiv -> keinen neuen Track spielen"))

Frage: weiß jemand, wie man erkennen kann, ob nextTrack() aufgerufen wurde, nur weil der vorherige Track zu Ende war (das will ich ja blocken), oder weil Tastendrucken (das würde ich durchlassen).

void nextButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleNextButton() == true)
      return;

  nextTrack(random(65536));
  delay(1000);
static void OnPlayFinished(DfMp3_PlaySources source, uint16_t track) {
  //      Serial.print("Track beendet");
  //      Serial.println(track);
  //      delay(100);
  nextTrack(track);
}

Beide triggern halt nextTrack, ohne dass man sie unterscheiden kann

Mist, also kann ich wohl nicht erkennen, ob nextTrack durch finish oder Tastendruck getriggert wurde…

Du kannst nextTrack() einfach um einen bool erweitern, den du z.B. true setzt wenn du manuell triggerst und false wenn nicht. Damit kannst du dann in nextTrack() unterscheiden…

1 „Gefällt mir“

Vielleicht kannst du wenn der Button gedrückt wird auch einfach ein neues Hörspiel starten.

Was passiert, wenn du in

void nextButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleNextButton() == true)
      return;

  if (myFolder->mode == 1) {
    Serial.println(F("Hörspielmodus -> zufälligen Track wiedergeben"));
    currentTrack = random(1, numTracksInFolder + 1);
    Serial.println(currentTrack);
    mp3.playFolderTrack(myFolder->folder, currentTrack);
    }
  if (myFolder->mode == 7) {
    Serial.println(F("Spezialmodus Von-Bin: Hörspiel -> zufälligen Track wiedergeben"));
    Serial.print(myFolder->special);
    Serial.print(F(" bis "));
    Serial.println(myFolder->special2);
    numTracksInFolder = myFolder->special2;
    currentTrack = random(myFolder->special, numTracksInFolder + 1);
    Serial.println(currentTrack);
    mp3.playFolderTrack(myFolder->folder, currentTrack);
  }
  else {
    nextTrack(random(65536));
  }
   delay(1000);

ergänzt?

1 „Gefällt mir“

Das ist auch ein ziemliches Konstrukt. Wenn diese Zahl zufällig (1:65536) die gleiche ist, wie der letzte Titel, wird der Tastendruck ignoriert. :crazy_face:

Ich würde es auch mit @stephan’s Ansatz probieren, aber @Gute_Laune’s Variante geht auch.

Das ist genau das, was in der DEV beim Drücken der next taste passiert.

@Gute_Laune : Ich weiß. Ich wollte nur anmerken, dass es etwas unsauber ist … mit gewissem Restrisiko, dass nix bei Tastenklick passiert.

Dann drückt man (das Kind) nochmal :joy:

2 „Gefällt mir“

Meine Kids hämmern sowieso immer auf den Knöpfen rum, als gäbs keinen Morgen. Da fällt das gar nicht ins Gewicht :smiley: