Einzelnen Beitrag anzeigen

uups

Registriert seit: 23. Aug 2004
68 Beiträge
 
#1

Auf Lautstärkeveränderung (z.B. im Windows-Lautstärkemixer) reagieren?

  Alt 28. Sep 2018, 09:16
Hallo!

Mit folgendem Code kann ich die Sound-Lautstärke für den eigenen Prozess regulieren.

Delphi-Quellcode:
procedure SetVolume(const volL, volR: Word);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  FillChar(waveF, SizeOf(waveF), 0);
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  vol:= volL + volR shl 16;
  waveOutSetVolume(hWO, vol);
  waveOutClose(hWO);
end;
Dabei erscheint im Windows-Lautstärkenmixer sogar ein separater Regler für den eigenen Prozess. Wird die Lautstärke im Windows-Mixer verändert, möchte ich diese Veränderung natürlich in meinem Programm mitbekommen und entrpechend darauf reagieren. Ich habe versucht, die Messages MM_MIXM_LINE_CHANGE und MM_MIXM_CONTROL_CHANGE zu abonieren, doch die werden irgendwie nicht ausgelöst.

Delphi-Quellcode:
public
  { Public-Deklarationen }
  procedure WMUser1(var msg: TMessage); message MM_MIXM_LINE_CHANGE;
  procedure WMUser2(var msg: TMessage); message MM_MIXM_CONTROL_CHANGE;
end;
Was mache ich falsch. Wie kann ich auf die Lautstärkeveränderungen reagieren, die von fremden Prozessen ausgelöst werden?
  Mit Zitat antworten Zitat