Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Zuweisung der Hauptlautstärke

  Alt 28. Jan 2017, 13:29
Hab die Balance zu TAudioVolume addiert aber ein kleines Berechnungsproblem.

Der Ausgang soll so sein das der rechte und linke Kanal jeweils 100% hat wenn meine Trackbar auf 50 also der hälfte steht.
Das Problem ist aber das im Moment bei meiner Berechnung die Lautstärke sowie beide Kanäle auf 50% stehen.

Schiebe ich den regler ganz nach links ist die Lautstärke 100% und der linke Kanal genauso.
Das gleiche wenn ich ganz nach rechts schiebe.

Meine Funktion sieht so aus.

Delphi-Quellcode:
procedure TAudioVolume.tbMasterBalanceChange(Sender: TObject);
var
  Balance: single;
  rightVol: single;
  leftVol: single;
begin

  if AudioEndpointVolume = nil then
    exit;

  Balance := Max(-tbMasterBalance.Max, Min(tbMasterBalance.Max, tbMasterBalance.Position));

  leftVol := 1.0 - Max(0.0, Balance / tbMasterBalance.Max);
  rightVol := 1.0 + Min(0.0, -leftVol);

  AudioEndpointVolume.SetChannelVolumeLevelScalar(0, leftVol, @GUID_TAudioVolume);
  AudioEndpointVolume.SetChannelVolumeLevelScalar(1, rightVol, @GUID_TAudioVolume);

end;
Wo ist mein Denkfehler ? Das die Lautstärke sich immer mit verändert.. bzw. die Kanäle bei 50% der Trackbar.Position nicht 100% sind.
Bewege ich den linken bzw.. den rechten Slider unter den Eigenschaften "Wiedergabegerät" separat ändert sich die Hauptlautstärke nicht.
Aber ich möchte keine zwei Trackbars dafür verwenden.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:45 Uhr)
  Mit Zitat antworten Zitat