Lautstärke des Mediaplayers per HM Taster steuern

Hallo,

ich denke ich sitze gerade auf dem Schlauch ich nutze den Mediaplayer um Radio zu hören.
Das funktioniert einwandfrei.
Jetzt möchte ich per Wipptaster die Lautstärke ändern(Taste nach oben lauter, nach unten leiser), mir fehlt hier ein Ansatzpunkt zu einem Skript.

Kann mir jemand helfen?

Gruss Jan

Variable von der Fernbedienung einlesen, Volumevariable anlegen und bei jedem Tastendruck entsprechend die Variable erhöhen oder erniedriegen.

Schnipp als Beispiel.

case 46102: // Taste leiser
            $vol = GetValue(31761 /*[Squeezeboxen\Wohnzimmer\Volume]*/);
            if($vol == 0) return;
           SqueezeVolume($wohnzimmer, $vol -= 5);
            SetValue(31761 /*[Squeezeboxen\Wohnzimmer\Volume]*/, $vol);
       break;
        case 24537: // Taste lauter
          $vol = GetValue(31761 /*[Squeezeboxen\Wohnzimmer\Volume]*/);
          if($vol <0) $vol = 0;
           SqueezeVolume($wohnzimmer, $vol += 5);
            SetValue(31761 /*[Squeezeboxen\Wohnzimmer\Volume]*/, $vol);
      break;

Die arme Variable erniedrigen? Was hat sie dir denn getan?! :smiley:

Ich würde zusätzlich auch die langen Tastendrücke auswerten. Du möchtest ja bestimmt, dass beim Gedrückthalten der Taste die Lautstärke sich kontinuierlich erhöht oder verringert.

Es ist ein bisschen tricky, das bei HM umzusetzen, falls ich es schaffe mache ich dazu nochmal ein sauberes, kommentiertes Codebeispiel. Es ist bei mir leider tief mit anderen Skripten verwoben und weder besonders elegant, noch gut kommentiert :wink:

Hallo,

ich habe das jetzt mal getestet und leider versagt.

Ich habe das ganze mal zum testen verkürzt:

Bei Tastedruck startet folgendes Skript:

$vol = GetValue(13745 /[Radio\Media Player\Lautstärke]/);
if($vol == 0) return;
SqueezeVolume($wohnzimmer, $vol -= 5);
SetValue(13745 /[Radio\Media Player\Lautstärke]/, $vol);

Meine Frage hierzu was macht der SqueezeVolume Befehl?

Des Weiteren steht in der Variable, das diese nicht von PHP Skripten verändert werden kann (Schreibgeschützt), das kann ich auch nicht ändern.

Was fehlt hier was mache ich falsch?

Ich habe folgendes in php getestet das würde, glaube ich zumindest, auch funktionien aber ich habe keinen Schreibzugriff.
Ich denke das ist mein Problem.

<?
$vol = GetValue(13745 /[Radio\Media Player\Lautstärke]/);
if($vol == 0) return;
$vol1 = $vol +5;;
SetValue(13745, $vol1);

?>

Kann ich das den Schreibschutz aufheben?

Statt dem SetValue nimm

WAC_SetVolume(12345, (int)$vol1);

12345 = die ID deiner MediaplayerInstanz.

Das fluppt, so wollte ich es haben

1000 Dank.

Gruss Jan

Kurz aufgemerkt…

… auf automatisch erstellte Variablen von Instanzen kann man nicht zugreifen. Hier muss immer über den entsprechenden Instanz-Befehl geschrieben werden.

So wie in deinem Fall nicht auf die Volume-Variable schreiben sondern mit WAC_SetVolume.