Ich habe gerade einen Tonuino mit den empfohlenen Arcade-Buttons fertiggestellt. Mir ist aufgefallen, dass die Buttons auf schnelles Knopfdrücken nicht gut reagieren. Wenn ich z.B. ein Album wiedergebe, so kann ich nicht “mal eben” schnell zu Lied Nr. 20 springen. Ich muss drücken, kurz warten, bis das nächste Lied läuft, und wieder drücken usw… Ich kann also nicht schnell 19 mal drücken und habe das Lied.
Ist das normal?
Welche Firmware (und Version!) setzt du ein? Wieviele Buttons hast du verbaut?
Ich vermute mal DEV mit 3 Tasten? Durch die Doppelbelegung ist es da natürlich normal, weil “lang drücken” ja “nächster Titel” ist. Umgehen kannst du das entweder:
indem du die Funktion der Buttons im Admin Menü tauschst - dann ist kurz drücken nächster/vorheriger Track und lang drücken lauter/leiser.
indem du auf 5 Buttons umbaust - dann hast du separate Buttons für die jeweilige Funktion.
Das liegt an den 1000ms Delays jeweils am Ende der entsprechenden Funktionen:
Warum die da sind, keine Ahnung, aber du kannst versuchen diese zu verkleinern und sehen ob a) alles noch funktioniert und ob sich dann b) dein gewünschtes Verhalten einstellt.
Vermutlich damit du überhaupt die Chance hast einzelne Tracks weiter zu springen (sprich dir die Chance zu geben die Taste auch wieder loszulassen). Wenn dieses Delay zu klein gewählt wird, springt man bei einem Druck vermutlich X Titel weiter.
Was hat das mit lauter/leiser zu tun? Das sind doch ganz andere Funktionen… bei lauter/leiser ist “gedrückt halten” quasi gewollt. Finde ich auch problematisch für kleine Kinder, aber deswegen wurde das ja umbelegt (halten nächster titel, kurz lauter).
Wie gesagt, vom Code verstehe ich wenig. Aber Woran merkt die Software den Unterschied zwischen Drücken und gedrückt halten. Ich will sagen: Wenn kein Delay vorhanden wäre, so würden wohl alle titel extrem schnell durchgeskipt werden, aber wann wird die Box lauter?
Ich gehe hier nur vom Fall der nicht vertauschten Buttonbelegung aus.
Das sind verschiedene Checks die an unterschiedlichen Stellen passieren. Von daher, wenn dir das aktuelle Verhalten nicht zusagt, ändere es und schaue was passiert.
Meinen Sohn hat es immens gestört, dass er nicht mal eben ein paar Tracks/Lieder weiterspringen kann. Vom ersten zum zehnten Lied springen dauert realistisch um die 15-20 Sekunden, weil alleine zehn Sekunden für die Delays drauf gehen und man natürlich auch nie den perfekt frühestmöglichen Moment erwischt. Ein kurzer Delay ist wahrscheinlich sinnvoll um Wackler beim Drücken zu vermeiden, aber es muss ja nicht gleich eine ganze Sekunde sein. Ich bin froh, dass die Ursache einfach nur ein Parameter ist und habe das mal auf 100ms geändert. Jetzt passt es!
Vielleicht wäre es eine Überlegung wert, den Delay-Wert im Hauptprojekt deutlich herunterzusetzen? Jedes Kind bedient den Tonuino natürlich unterschiedlich, aber ich könnte mir vorstellen, dass es doch viele Kinder gibt, die von den „trägen“ Buttons nicht so angetan sind.
Es gibt auch die Möglichkeit den Button so abzufragen das er erst reagiert wenn man loslässt .also Abfrage ob gedrückt wurde und dann aber erst Befehl ausführen wenn Button losgelassen wird…