Lautstärke 0 = Pause

Hi,

unsere Box ist nun seit Weihnachten im Einsatz, bereits durch viele Hände gegangen und hat viel erstaunen in die Augen der Erwachsenen gezaubert, dass es etwas außer der Toniebox gibt und man dennoch Tonies verwenden kann, wenn man das will. :wink: Tausend Dank an @biologist und alle anderen für dieses grandiose Projekt.

Ich habe ein kleines Featurerequest: Lautstärke 0/minimum = Pause. Macht man lauter spielt es weiter.

Was meint ihr dazu?

Beste Grüße
Sven

Ich bräuchte es nicht aber bin da emotionslos.
Teste mal bitte Folgendes:

	if (!gPlayProperties.pausePlay) {
		if (_newVolume == AudioPlayer_GetMinVolume()) {
			Cmd_Action(CMD_PLAYPAUSE);
		}
	}
	if (gPlayProperties.pausePlay) {
		if (_newVolume == AudioPlayer_GetMinVolume()+1 && AudioPlayer_GetCurrentVolume() == 0) {
			Cmd_Action(CMD_PLAYPAUSE);
		}
	}

Das Ganze zwischen Zeile 814 und 815 einfügen. (Hab’s nicht getestet.)

Er pausiert bei Lautstärke 0 aber spielt nicht, wenn man wieder lauter macht.

[ 55642 ]  Neue Lautstärke empfangen via Queue: 2
[ 55738 ]  Neue Lautstärke empfangen via Queue: 1
[ 55864 ]  Neue Lautstärke empfangen via Queue: 0
[ 55868 ]  Kontroll-Kommando empfangen via Queue: 3
[ 55870 ]  Kommando: Pause
[ 55938 ]  Minimale Lautstärke bereits erreicht!
[ 59204 ]  Neue Lautstärke empfangen via Queue: 1
[ 59384 ]  Neue Lautstärke empfangen via Queue: 2
[ 59718 ]  Neue Lautstärke empfangen via Queue: 3
[ 60002 ]  RSSI: -40 dBm
[ 60008 ]  Neue Lautstärke empfangen via Queue: 4

Ich hab mir eine Variation überlegt, die auch wieder auf die eingestellte Minimale Lautstärke zurückgreift, war aber nicht erfolgreich. Auch das funktioniert (noch) nicht.

if (gPlayProperties.pausePlay) {
		if (_newVolume != AudioPlayer_GetMinVolume() && AudioPlayer_GetCurrentVolume() == AudioPlayer_GetMinVolume()) {
			Cmd_Action(CMD_PLAYPAUSE);
		}
	}

Entfernt man die Überprüfung der aktuellen Lautstärke funktioniert es. Das wundert mich allerdings, da ich vermutet hätte das nun immer, wenn die neue Lautstärke >0 ist er das Kommando CMD_PLAYPAUSE ausführt. Tut er aber nicht. Er führt CMD_PLAYPAUSE immer nur zwischen einem Wechsel von 0>1>0>1 (siehe Log) aus. Alles andere wird ignoriert. Hat da jemand eine Erklärung?´
Es hat noch einen anderen, wie ich finde netten, Nebeneffekt. Wenn man die Musik (wie auch immer) pausiert und am Lautstärkeregler dreht, wird automatisch wieder abgespielt (egal bei welcher Lautstärke).

	if (gPlayProperties.pausePlay) {
		if (_newVolume != AudioPlayer_GetMinVolume()) {
			Cmd_Action(CMD_PLAYPAUSE);
		}
	}
[ 71758 ]  Neue Lautstärke empfangen via Queue: 2
[ 72305 ]  Neue Lautstärke empfangen via Queue: 1
[ 73051 ]  Neue Lautstärke empfangen via Queue: 0
[ 73056 ]  Kontroll-Kommando empfangen via Queue: 3
[ 73057 ]  Kommando: Pause
[ 74312 ]  Neue Lautstärke empfangen via Queue: 1
[ 74316 ]  Kontroll-Kommando empfangen via Queue: 3
[ 74316 ]  Kommando: Pause
[ 76784 ]  Neue Lautstärke empfangen via Queue: 2
[ 77388 ]  Neue Lautstärke empfangen via Queue: 3
[ 77817 ]  Neue Lautstärke empfangen via Queue: 4
[ 78297 ]  Neue Lautstärke empfangen via Queue: 3
[ 78828 ]  Neue Lautstärke empfangen via Queue: 2
[ 79042 ]  Neue Lautstärke empfangen via Queue: 3
[ 79499 ]  Neue Lautstärke empfangen via Queue: 4
[ 79787 ]  Neue Lautstärke empfangen via Queue: 3
[ 80046 ]  Neue Lautstärke empfangen via Queue: 2
[ 80267 ]  Neue Lautstärke empfangen via Queue: 1
[ 80747 ]  Neue Lautstärke empfangen via Queue: 0
[ 80752 ]  Kontroll-Kommando empfangen via Queue: 3
[ 80753 ]  Kommando: Pause
[ 82382 ]  Neue Lautstärke empfangen via Queue: 1
[ 82386 ]  Kontroll-Kommando empfangen via Queue: 3
[ 82386 ]  Kommando: Pause
[ 82997 ]  Neue Lautstärke empfangen via Queue: 2
[ 83883 ]  Neue Lautstärke empfangen via Queue: 1
[ 84746 ]  Neue Lautstärke empfangen via Queue: 0
[ 84751 ]  Kontroll-Kommando empfangen via Queue: 3
[ 84752 ]  Kommando: Pause
[ 85743 ]  Neue Lautstärke empfangen via Queue: 1
[ 85747 ]  Kontroll-Kommando empfangen via Queue: 3
[ 85747 ]  Kommando: Pause
[ 86796 ]  Neue Lautstärke empfangen via Queue: 2
[ 87276 ]  Neue Lautstärke empfangen via Queue: 3

Ups, ich habe AudioPlayer_SetCurrentVolume() in Zeile 810 übersehen. Das wird ja dann schon 1 gesetzt und daher passt die Bedinung unten nicht.
Ich denke man müsste 810 auskommentieren und aber diese Zeile verschieben und das aufräumen.

Puh, heute nicht mehr. Da muss man wieder viel testen :rofl:.

1 „Gefällt mir“

So, fertig:

2 „Gefällt mir“

Läuft bestens! Vielen lieben Dank @biologist für die schnelle Umsetzung

1 „Gefällt mir“