Funktionen zur Lautstärkeänderung

Gibt es eigentlich einen Grund dafür, warum zum Einstellen der Lautstärke mp3.increaseVolume() & mp3.decreaseVolume() verwendet werden? Liegt das daran, dass volume erst seitdem es die Lautstärkegrenzen gibt, existiert? Es wäre ja auch möglich mp3.setVolume(volume) zu nutzen. Der Vorteil dabei ist, dass wenn die Lautstärke beim Start nicht richtig gesetzt wird, nach der ersten Änderung der Player im normalen Lautstärkebereich ist. Das volume mit der tatsächlichen Lautstärke des Players übereinstimmt.
Gibt es einen Nachteil, den ich nicht bedacht habe?

void volumeUpButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleVolumeUp() == true)
      return;

  Serial.println(F("=== volumeUp()"));
  if (volume < mySettings.maxVolume) {
    volume++;
    mp3.setVolume(volume);
  }
  Serial.println(volume);
}

void volumeDownButton() {
  if (activeModifier != NULL)
    if (activeModifier->handleVolumeDown() == true)
      return;

  Serial.println(F("=== volumeDown()"));
  if (volume > mySettings.minVolume) {
    volume--;
    mp3.setVolume(volume);
  }
  Serial.println(volume);
}

Warum kann ich dir nicht (mehr) sagen. Hat vermutlich historische Gründe. Ich benutze in meinem Fork aber auch von Anfang an setVolume. Vor allem aus dem Grund da so die “gemerkte” Lautstärke nicht von der tatsächlichen weg driften kann, sollte der Player mal ein command schlucken. Beim nächsten Aufruf ist es dann wieder in sync.

1 Like