Geschwindigkeitsabhängige Lautstärke Regulierung mit Tasker möglich?

  • 5 Antworten
  • Letztes Antwortdatum
F

flying hellfish

Dauer-User
288
Hallo zusammen,

ich möchte bei meiner Android Head Unit die Lautstärke geschwindigkeitsabhängig ändern, also verkürzt gesagt: je schneller desto lauter und umgekehrt.
Die Regelung der Lautstärke bei der Headunit passiert auf der MCU Ebene und die Lautstärke-Regelung des Android-Systems ist ohne Funktion. Daher kommen auch die fertigen Apps (z.b. GPS Volume) nicht in Frage. Ich habe Tasker jetzt immerhin so weit, dass es die (Hardware-) Lautstärke-Tasten (+/-) bedienen kann und habe zwei Tasks (Volume Up und Volume Down), die nun getriggert werden wollen. Nun fehlt mit aber ein passendes Profil bzw. eine Logik, die die Lautstärke erhöht, wenn ich schneller fahre und umgekehrt wieder senkt, wenn ich langsamer werde. Das soll dann in etwa so aussehen: wenn ich 50 km/h erreiche, soll Volume Up getriggert werden; dann wieder bei 70, 100 und 130km/h. Das lässt sich ja mit der Variable %LOCSPD realisieren. Wie bringe ich aber Tasker jetzt bei, ob ich beschleunige (und Volume Up getriggert wird) oder ob ich bremse (und Volume Down getriggert werden soll)? Ich hatte die Idee vielleicht eine benutzerdefinierte Variable zu basteln, die den letzten %LOCSPD Wert mit dem aktuellen Wert (bei 10 Sekunden Intervall) vergleicht und dann auswertet: %LOCSPD_10s < %LOCSPD = Beschleunigung; %LOCSPD_10s > %LOCSPD = Verzögerung.

Ist das so praktikabel? Hat jemand einen besseren Vorschlag?

VG
der Fish
 
Mein Vorschlag wäre das Vergleichen der neuen Lautstärkenstufe (abhängig vom Geschwindigkeitsbereich) mit der alten Lautstärkenstufe.
So ist es z.B. auch möglich den Task Volume Up 2x auszuführen wenn innerhalb des Intervall von 50km/h auf 100km/h beschleunigt wird.

Task importieren
Code:
    Aufgabe: Lautstärkeregulierung
   
    A1: Variable Setzen [
         Name: %intervall
         Zu: 10
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
   
    A2: Array Set [
         Variable Array: %geschwindigkeit
         Values: 50,70,100,130
         Teiler: , ]
   
    A3: Variable Setzen [
         Name: %stufe_alt
         Zu: 0
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
   
    A4: Array Push [
         Variable Array: %geschwindigkeit
         Position: 1
         Wert: 0 ]
   
    A5: Array Push [
         Variable Array: %geschwindigkeit
         Position: 999
         Wert: 999 ]
   
    <Start Schleife>
    A6: Anker
   
    A7: Get Location v2 [
         Timeout (Sekunden): 30
         Enable Location If Needed: An
         Force High Accuracy: An
         Task Weiter Ausführen Nach Fehler:An ]
   
    A8: Goto Aktion [
         Typ: Aktion Label
         Bezeichnung: Start Schleife ]
        If  [ %gl_speed ! gesetzt ]
   
    A9: Variable Setzen [
         Name: %gl_speed
         Zu: %gl_speed * 3.6
         Mathematisch: An
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
   
    A10: For [
          Variable: %index
          Einträge: 2:%geschwindigkeit(#)
          Structure Output (JSON, etc): An ]
   
        A11: Variable Setzen [
              Name: %index2
              Zu: %index - 1
              Mathematisch: An
              Max Rounding Digits: 3
              Structure Output (JSON, etc): An ]
   
        A12: If [ %gl_speed = %geschwindigkeit(%index(2)) | %gl_speed > %geschwindigkeit(%index(2)) & %gl_speed < %geschwindigkeit(%index) ]
   
            A13: Variable Setzen [
                  Name: %stufe_neu
                  Zu: %index - 2
                  Mathematisch: An
                  Max Rounding Digits: 3
                  Structure Output (JSON, etc): An ]
   
            A14: Goto Aktion [
                  Typ: Aktion Label
                  Bezeichnung: Lautstärkenänderung berechnen ]
   
        A15: End If
   
    A16: End For
   
    <Lautstärkenänderung berechnen>
    A17: Variable Setzen [
          Name: %änderung
          Zu: %stufe_neu - %stufe_alt
          Mathematisch: An
          Max Rounding Digits: 3
          Structure Output (JSON, etc): An ]
   
    A18: Variable Setzen [
          Name: %stufe_alt
          Zu: %stufe_neu
          Max Rounding Digits: 3
          Structure Output (JSON, etc): An ]
   
    A19: If [ %änderung > 0 ]
        <Task Volume Up>
        A20: Task Ausführen [
              Name: Volume Up
              Priorität: %priority
              Structure Output (JSON, etc): An ]
   
        A21: Variable Substrahiere [
              Name: %änderung
              Wert: 1
              Obergrenze: 0 ]
   
        A22: Goto Aktion [
              Typ: Aktion Label
              Bezeichnung: Task Volume Up ]
            If  [ %änderung > 0 ]
   
    A23: End If
   
    A24: If [ %änderung < 0 ]
   
        <Task Volume Down>
        A25: Task Ausführen [
              Name: Volume Down
              Priorität: %priority
              Structure Output (JSON, etc): An ]
   
        A26: Variable Addiere [
              Name: %änderung
              Wert: 1
              Obergrenze: 0 ]
   
        A27: Goto Aktion [
              Typ: Aktion Label
              Bezeichnung: Task Volume Down ]
            If  [ %änderung < 0 ]
   
    A28: End If
   
    A29: Warte [
          MS: 0
          Sekunden: %intervall
          Minuten: 0
          Std.: 0
          Tage: 0 ]
   
    A30: Goto Aktion [
          Typ: Aktion Label
          Bezeichnung: Start Schleife ]

Bei Aufgabe A1 wird die Intervallzeit vom Auslesen der Geschwindigkeit festgelegt.
Bei Aufgabe A2 werden die Geschwindigkeiten für die Lautstärkenstufen festgelegt. Hier können beliebig viele Geschwindigkeiten hinzugefügt oder entfernt werden, der Task setzt automatisch die Geschwindigkeitsbereiche und Lautstärkenstufen.
Am restlichen Task muss eigentlich nichts mehr geändert werden.

Wenn der Task einmal gestartet wurde, läuft er in einer Dauerschleife.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: flying hellfish und qwoka
@Mathens Kann es sein, das die Tasks "Volume Up" und "Volume Down" fehlen? Der Task Lautstärkeregulierung zeigt diesen Fehler an.
 
  • Danke
Reaktionen: Mathens
flying hellfish schrieb:
Ich habe Tasker jetzt immerhin so weit, dass es die (Hardware-) Lautstärke-Tasten (+/-) bedienen kann und habe zwei Tasks (Volume Up und Volume Down)
Ja die fehlen bei dir, da sie schon vorhanden sind, aber Danke für den Hinweis.
@flying hellfish die Namen der Task müssen eventuell auch noch angepasst werden.
 
Ah ok, hatte den langen Text von @flying hellfish nur überflogen 😉
 
@Mathens

Vielen lieben Dank schon mal für die Hilfe! Sobald ich die Gelegenheit habe, werde ich das testen.
 

Ähnliche Themen

Angelchc
Antworten
4
Aufrufe
199
Angelchc
Angelchc
Doni890
Antworten
1
Aufrufe
379
jandroid
jandroid
qwoka
Antworten
3
Aufrufe
160
qwoka
qwoka
Zurück
Oben Unten