Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Get/Set Master Volume Lautstärke?

  Alt 14. Okt 2023, 20:11
gefunden...

Code:
uses MMSystem;

...

procedure GetWaveVolume(var volL, volR: DWord);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  volL:= 0;
  volR:= 0;
  // init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  // get volume
  waveOutGetVolume(hWO, @vol);
  volL:= vol and $FFFF;
  volR:= vol shr 16;
  waveOutClose(hWO);
end;

procedure SetWaveVolume(const volL, volR: DWord);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  // init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  vol:= volL + volR shl 16;
  // set volume
  waveOutSetVolume(hWO, vol);
  waveOutClose(hWO);
end;
Diesem Irrtum bin ich vorher auch verfallen: Das betrifft nicht den Wert von MASTER VOLUME, sondern den Volume-Wert des eigenen Programms.

Kannst du in Settings -> App volume and device preferences genau beobachten.

Danke jedenfalls für deinen Beitrag! Much appreciated!
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.

Geändert von PeterPanino (14. Okt 2023 um 20:32 Uhr)
  Mit Zitat antworten Zitat