Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#28

AW: Zuweisung der Hauptlautstärke

  Alt 30. Jan 2017, 15:51
Werde es mal testen Danke.

EDIT:
Nein Funktioniert nicht deine Auslegung ist auf 1 Kanal beschränkt.
Es ändert sich nur der Linke Kanal.

Wenn die Trackbar zentriert ist soll die erste Hälfte für den Linken Kanal
und die andere für den Rechten zuständig sein.

Aber du darfst es gerne selbst nochmal testen.

Delphi-Quellcode:
procedure TAudioVolume.tbMasterBalanceChange(Sender: TObject);
var
  Balance: single;
  Chans: UINT;
  Channels: TChannels;
  MasterVol: single;
  HR: HResult;
  BalanceOffset: Single;

  function CheckValue(const aValue: Single): Single;
   begin
     Result := aValue;
     if Result > 1.0 then Result := 1.0 else
     if Result < 0 then Result := 0;
   end;
begin

  if AudioEndpointVolume = nil then
    exit;

  HR := AudioEndpointVolume.GetChannelCount(Chans);
  if HR = S_OK then
  begin
    if Chans < 2 then
      exit;
  end else
  exit;

  MasterVol := GetMasterVolume();

  Channels.LeftVol := MasterVol;
  Channels.RightVol := MasterVol;

  BalanceOffset := tbMasterBalance.Position * 0.01;

  if BalanceOffset < 0 then
    Channels.RightVol := CheckValue(MasterVol + BalanceOffset)
  else
  if BalanceOffset > 0 then
    Channels.LeftVol := CheckValue(MasterVol - BalanceOffset);

  AudioEndpointVolume.SetChannelVolumeLevelScalar(0, Channels.LeftVol, @GUID_TAudioVolume);
  AudioEndpointVolume.SetChannelVolumeLevelScalar(1, Channels.RightVol, @GUID_TAudioVolume);

end;

gruss

Geändert von EWeiss (30. Jan 2017 um 16:07 Uhr)
  Mit Zitat antworten Zitat