Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Lautstärke andere Programm veringern, ohne die des eigenen (https://www.delphipraxis.net/196076-lautstaerke-andere-programm-veringern-ohne-die-des-eigenen.html)

OLDIE1950 23. Apr 2018 08:48

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Danke für den Link!
Mit WAV-Files geht es, mit MP3-Files friert es ein.

Nachtrag:
Den MediaPlayer habe ich jetzt durch den VLC-Player ersetzt.
https://wiki.videolan.org/Using_libvlc_with_Delphi/

KodeZwerg 23. Apr 2018 11:17

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Zitat von Alallart (Beitrag 1400186)
Die Antwort: "Windows Mixer Api" ist so allgemein

Ich hatte mich ja bereits verbessert und Entschuldige mich hiermit nochmals für eine falsch erste Antwort, das war wirklich nur für alles oder nichts Methodik.
Zitat:

Zitat von Alallart (Beitrag 1400186)
Ich suche mit den mir gegebenen Stichworten

Dann hättest Du auch was gefunden, MfPack zum Beispiel auf Sourceforge. Da hast du eine komplette Delphi Komponente die genau das machen kann was Du willst. Fremde Prozesse stumm schalten.
Zitat:

Zitat von Alallart (Beitrag 1400186)
Der Tipp war sehr allgemein

In meinem dritten Post gab ich Dir Links zu exakt den zwei Api's die Du brauchst, EWeiss sagte Dir wonach Du suchen solltest, da kam sogar ein Link mit einem kompletten Source Code!
Zitat:

Zitat von Alallart (Beitrag 1400186)
und wie so oft gibt es da nicht einen fertigen Befehl

Delphi-Quellcode:
uses
  MMDeviceApi, ActiveX, AudioPolicy;
var
  DeviceEnumerator: IMMDeviceEnumerator;
  DefaultDevice: IMMDevice;
  SessionManager: IAudioSessionManager;
  SessionControl: IAudioSessionControl;
begin
  if Succeeded(CoCreateInstance(CLSID_MMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, DeviceEnumerator))
    and Succeeded(DeviceEnumerator.GetDefaultAudioEndpoint(eRender, eMultimedia, DefaultDevice))
    and Succeeded(DefaultDevice.Activate(IID_IAudioSessionManager, CLSCTX_INPROC_SERVER, nil, IUnknown(SessionManager)))
    and Succeeded(SessionManager.GetAudioSessionControl(nil, 0, SessionControl)) then
    SessionControl.SetDisplayName('Mein Programm', nil);
ein Befehl der Dir eine Schnittstelle "SessionControl" anbietet, gefunden auf Stackoverflow.

EWeiss 23. Apr 2018 14:35

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Zitat von OLDIE1950 (Beitrag 1400206)
Danke für den Link!
Mit WAV-Files geht es, mit MP3-Files friert es ein.

Nachtrag:
Den MediaPlayer habe ich jetzt durch den VLC-Player ersetzt.
https://wiki.videolan.org/Using_libvlc_with_Delphi/

Was habe ich denn dabei geschrieben.. Lesen
Zitat:

Um die eigene Lautstärke zu reduzieren lade ein Midi File damit und regele dann das Anwendungsvolumen.
Sollte eigentlich klar sein das der MCI Player für MP3 nicht sonderlich taugt.
Das ist ja auch kein abspielgerät sondern eine Volumen Komponente.

gruss

OLDIE1950 23. Apr 2018 16:38

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Warum bist Du eigentlich immer so aggressiv???

EWeiss 23. Apr 2018 16:41

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Zitat von OLDIE1950 (Beitrag 1400262)
Warum bist Du eigentlich immer so aggressiv???

Wo?
Ich habe kein Problem zu lesen.
Du prangerst Fehler an ohne vorher zu lesen was die Vorrausetzungen für das Programm sind.

gruss

jaenicke 24. Apr 2018 07:39

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Der Suchbegriff zu dem Thema lautet Ducking. Hier findet sich in der API z.B. etwas dazu:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Man kann unter Windows einstellen wie darauf reagiert werden soll, wenn eine Kommunikation erkannt wird. Zum Beispiel alles andere um 80% herunterregeln. Das heißt man müsste nur noch den Alarm als Kommunikation flaggen und schon sollte Windows das je nach Einstellung selbst machen. Wie das geht weiß ich allerdings nicht aus dem Hut.

EWeiss 24. Apr 2018 07:44

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Zitat von jaenicke (Beitrag 1400294)
Der Suchbegriff zu dem Thema lautet Ducking. Hier findet sich in der API z.B. etwas dazu:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Man kann unter Windows einstellen wie darauf reagiert werden soll, wenn eine Kommunikation erkannt wird. Zum Beispiel alles andere um 80% herunterregeln. Das heißt man müsste nur noch den Alarm als Kommunikation flaggen und schon sollte Windows das je nach Einstellung selbst machen. Wie das geht weiß ich allerdings nicht aus dem Hut.

Dann nur das Interface IAudioVolumeDuckNotification noch implementieren und gut ist.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

gruss

jaenicke 24. Apr 2018 10:07

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Zitat von EWeiss (Beitrag 1400295)
Dann nur das Interface IAudioVolumeDuckNotification noch implementieren und gut ist.

Das ist ja die andere Richtung. Reagieren darauf, dass eine Kommunikation läuft um das Ducking selbst umzusetzen. Das kenne ich. Hier soll es aber initiiert werden. Sprich die Soundausgabe muss als Kommunikationsstream erfolgen.

Alallart 24. Apr 2018 16:49

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zuerst vielen Dank an alle.

@KodeZwerg

Ich hoffe nicht, dass du mich falsch verstanden hast, natürlich bin ich auch für die "allgemeine Antwort" dankbar. Aber das alles ist keine fertige Funktion, sondern viel Stoff, wenn man es nicht mit Copy&Paste nutzen will. Also mein Hinweis, dass ich noch drei Wochen vor der Lösung stehe war nicht böse gemeint, sondern sollte heißen, dass ich mich da einarbeiten muss.

Wie auch immer, inzwischen weiß schon mal wie man allgemein die Lautstärke regelt. Ist schon etwas.


@jaenicke, EWeiss

Wenn man in der Systemsteuerung von Windows 7 geht, und da auf Sound, gibt es im Register Kommunikation die Möglichkeit andere Programme in der Lautstärke um 50 oder 80% zu reduzieren, wenn zB das Telefin klingelt. Um das geht es mir.

Ich dachte zuerst daran die Gesamt-Lautstärke um 50% zu reduzieren und/oder meinen Programm dann lauter zu machen, aber wenn das Programm abstürzt, bleibt die Einstellung so. Der Methode von jaenicke beschreibt aber eine Funktion die die anderen Programme allgemein leiser macht, während das eigene Programm normal laut bleibt.

EWeiss 24. Apr 2018 16:57

AW: Lautstärke andere Programm veringern, ohne die des eigenen
 
Zitat:

Der Methode von jaenicke beschreibt aber eine Funktion die die anderen Programme allgemein leiser macht, während das eigene Programm normal laut bleibt.
Das wäre doch die Lösung ;)
Musst du halt noch ein bisschen basteln :)

PS:
Allerdings musst du die aktuelle Lautstärke der Anwendungen natürlich erfassen und beibehalten um sie später zurück zu setzen.
Ist zumindest besser falls deine Anwendung abstürzt.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 Uhr.
Seite 2 von 3     12 3      

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