AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auf Lautstärkeveränderung (z.B. im Windows-Lautstärkemixer) reagieren?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von uups · begonnen am 28. Sep 2018 · letzter Beitrag vom 28. Sep 2018
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 28. Sep 2018, 09:35
Schau mal in EWeiss seine taudiovolume-komponente-incl-system-mixer rein. Sollte Dir alles bieten was Dein Herz begehrt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

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

  Alt 28. Sep 2018, 09:54
Zitat:
doch die werden irgendwie nicht ausgelöst.
Können sie auch nicht wenn dein System Win7 und up ist.

gruss
  Mit Zitat antworten Zitat
uups

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

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

  Alt 28. Sep 2018, 10:30
Schau mal in EWeiss seine taudiovolume-komponente-incl-system-mixer rein. Sollte Dir alles bieten was Dein Herz begehrt.
Die Komponente von EWeiss mag ohne Zweifel toll sein, so viel ich davon hier gelesen habe. Bei mir geht es damit aber voll daneben. Sobald ich den Lautstärkenregler von TAudioVolume betätige, fängt den Regler an mit der sehr hohen Frequenz hin und her zu flimmern, die Anwendung hängt sich auf und die CPU-Auslastung schießt auf 99%. Schlimmer noch: auch der Windows-Mixer flimmert mit und das hört nicht mal auf, wenn die auslösende Anwendung über den TaskManager geschlossen wird. Das Betriebsystem wird damit bis komplett unbrauchbar, es bleibt nur der Neustart.

P.S. Habe ein Video von dem ganzen aufgenommen, werde es gleich hier gepackt hochladen.
Angehängte Dateien
Dateityp: zip TAudioVolume_Videos.zip (3,31 MB, 8x aufgerufen)

Geändert von uups (28. Sep 2018 um 10:40 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

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

  Alt 28. Sep 2018, 10:38
Zitat:
Die Komponente von EWeiss mag ohne Zweifel toll sein, so viel ich davon hier gelesen habe. Bei mir geht es damit aber voll daneben.
Nimm die einfache variante ohne Session..

gruss

Geändert von EWeiss (28. Sep 2018 um 13:34 Uhr)
  Mit Zitat antworten Zitat
uups

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

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

  Alt 28. Sep 2018, 10:43
Zitat:
Die Komponente von EWeiss mag ohne Zweifel toll sein, so viel ich davon hier gelesen habe. Bei mir geht es damit aber voll daneben.
Nimm die einfache variante ohne Session..
Ok, ich probier es, vielen Dank! Könntest Du eventuell noch kurz erklären, was in diesem Fall die "Session" ist?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

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

  Alt 28. Sep 2018, 10:44
Zitat:
Die Komponente von EWeiss mag ohne Zweifel toll sein, so viel ich davon hier gelesen habe. Bei mir geht es damit aber voll daneben.
Nimm die einfache variante ohne Session..
Ok, ich probier es, vielen Dank! Könntest Du eventuell noch kurz erklären, was in diesem Fall die "Session" ist?
Das sind die Anwendungen die im Mixer sichtbar sind.
Was du benötigst ist die Lautstärke deiner eigenen Anwendung bzw.. die Hauptlautstärke.

Habe im Archiv auf der Seite TAudioVolume.zip nichts mehr gemacht da keine Rückmeldungen kamen.
Kann sein das da noch diverse Probleme mit den Session sind.
Diese habe ich nur im Mixer64 gefixt (was aber keine Komponente ist).

gruss

Geändert von EWeiss (28. Sep 2018 um 10:49 Uhr)
  Mit Zitat antworten Zitat
uups

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

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

  Alt 28. Sep 2018, 11:07
Das sind die Anwendungen die im Mixer sichtbar sind.
Was du benötigst ist die Lautstärke deiner eigenen Anwendung bzw.. die Hauptlautstärke...
Genau. Und somit zurück zu meiner Frage: wie fange ich die Mixer-Lautstärkeveränderungen für die eigene Session ab (abgesehen von einem Timer mit WaveOutGetVolume() drin)?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

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

  Alt 28. Sep 2018, 11:10
Das sind die Anwendungen die im Mixer sichtbar sind.
Was du benötigst ist die Lautstärke deiner eigenen Anwendung bzw.. die Hauptlautstärke...
Genau. Und somit zurück zu meiner Frage: wie fange ich die Mixer-Lautstärkeveränderungen für die eigene Session ab (abgesehen von einem Timer mit WaveOutGetVolume() drin)?
Siehe das Sample..
Das beantwortet doch deine Frage..

Hmm...
Änderst du die Hauptlautstärke im Mixer dann ändert sich auch der Regler der Hauptlautstärke in dem Demo!
Änderst du die Anwendungslautstärke im Mixer dann ändert sich auch der Regler deiner Anwendung in dem Demo!

gruss

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

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

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

  Alt 28. Sep 2018, 17:46
@EWeiss
Vielen Dank, jetzt geht's!

Könntest Du eventuell noch verraten, weshalb in Deiner Demo beim Abspielen alle drei Balken gelegentlich grün werden und in meinem Programm bei gleicher Soundtatei nur die "M" aktiv ist?

Geändert von uups (28. Sep 2018 um 17:56 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz