Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Zuweisung der Hauptlautstärke

  Alt 28. Jan 2017, 13:57
Ich Antworte mal selber.
Ok so geht's..

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

  if AudioEndpointVolume = nil then
    exit;

  HR := AudioEndpointVolume.GetChannelCount(Channels);
  if HR = S_OK then
  begin
    if Channels < 2 then
      exit;
  end else
  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 * Channels, @GUID_TAudioVolume);
  AudioEndpointVolume.SetChannelVolumeLevelScalar(1, rightVol * Channels, @GUID_TAudioVolume);

end;
Musste die Kanäle noch mit Channels Multiplizieren.
Hat sich dann vorerst mal erledigt.

Muss jetzt noch die Position beim initialisieren berechnen.

gruss

Geändert von EWeiss (29. Jan 2017 um 05:14 Uhr)
  Mit Zitat antworten Zitat