Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Lautstärke (https://www.delphipraxis.net/1201-lautstaerke.html)

moin339 31. Okt 2002 13:35


Lautstärke
 
Moin!

Ich möchte die Gesammtlautstärke (die, die man mit dem tray symbol ändern kann) änderen. Habt ihr eine Idee wie das gehen kann?

Ich habe es bisher nur geschafft die waveout lautstärke zu ändern:

procedure lautstaerke(vol: integer)
begin
WaveOutSetVolume(wave_mapper,vol);
end;

(vol muss ein wert zwischen 0 und 65535 sein)

ciao, moin339

sakura 31. Okt 2002 14:27

Du benötigst zum Setzen der Lautstärke die Funktion

auxSetVolume(deviceID, volume);

die deviceID geht von 0 bis (auxGetNumDevs-1)

Ob ein Gerät die Lautstärkeneinstellungen unterstützt erfährst Du mit auxGetDevCaps.

Weitere Infos unter http://msdn.microsoft.com - oder von jemanden, der damit schon mal gearbeitet hat ;)

...:cat:...

thomasdrewermann 31. Okt 2002 14:44

Liste der Anhänge anzeigen (Anzahl: 1)
Mein Delphi unterstützt das net:

Weiss jemand warum?

MFG
Thomas

[edit=Daniel B]Image gelöscht; als Anhang langt![/edit]

Daniel 31. Okt 2002 14:51

Hallo thomas,

Du solltest schon die Unit "MMSystem" einbinden. Dann klappt's auch. :wink:

thomasdrewermann 31. Okt 2002 14:52

Danke :mrgreen: :bounce1:

Chewie 31. Okt 2002 14:56

Du musst noch die Unit mmsystem einbinden.


Edit: Ups, zu spät :oops:

thomasdrewermann 31. Okt 2002 15:02

Aber trotzdem DANKE! :mrgreen: :bounce1: :dancer: :dancer2:

moin339 1. Nov 2002 10:21

Moin!

Zitat:

Zitat von sakura
Du benötigst zum Setzen der Lautstärke die Funktion
auxSetVolume(deviceID, volume);

Das funktioniert bei mir nicht! :cry: Ich habe die Funktion so aufgerufen:
auxSetVolume(auxGetDevCaps, 65536);

Sicher das das für die Gesammtlautstärke (die im systray) ist?

cu, moin :coder:

moin339 1. Nov 2002 15:02

Moin!

Zitat:

Zitat von moin339
auxSetVolume(auxGetDevCaps, 65536);

Sorry, ich meinte
auxSetVolume(auxGetNumDevs, 65536);

Hat jemand einen Tip?

cu, moin339

OregonGhost 1. Nov 2002 16:16

Wenn du als Gerätenummer auxGetNumDevs() übergibst, obwohl die Gerätenummern von 0 bis auxGetNumDevs() - 1 reichen, ist doch klar, dass es nicht funktioniert, weil du eine ungültige, das heißt zu hohe, Nummer übergibst.

moin339 1. Nov 2002 16:41

Moin!

uups :oops:

Und wie komme ich an die richtige Gerätenummer?

cu, moin339 :coder:

sakura 4. Nov 2002 12:49

Zitat:

Zitat von moin339
Und wie komme ich an die richtige Gerätenummer?

Keine Ahnung :roll: , aber i.A. gibt es wahrscheinlich nur ein Gerät, bei welchem man die Lautstärke einstellen kann, oder :?:

moin339 4. Nov 2002 13:20

Moin!

Die Gerätenummer ist aber wahrscheinlich auf jedem PC anders, oder? :?:
Bringt mir ja nichts wenn ich nur die von mir kenne.

Weiß sonst noch jemand wie man die Gesamtlautstärke ändern kann?

cu, moin339 :coder:

sakura 4. Nov 2002 13:27

Zitat:

Zitat von moin339
Die Gerätenummer ist aber wahrscheinlich auf jedem PC anders, oder? :?:

Nochmals, die Geräte sind von 0 bis Anzahl-1 durchnummeriert. Was es den Teil betrifft, herauszufinden welches es ist, schau doch mal bei MSDN nach, dort wird ausführlich erklärt, wie man die wichtigsten Eigenschaften eines Gerätes ermittelt. Direkte Links von den oben genannten Befehlen aus...

d3g 4. Nov 2002 13:29

Hallo,

ich glaube, mit dem Auxiliary-API ist es überhaupt nicht möglich, die Lautstärke des Masters zu verstellen, da die Soundkarte kein Auxiliary- sondern ein Mixer-Gerät ist, also wäre dafür das Mixer-API zuständig. Alan C. Moore hat in seinem Buch "Delphi Win32 Multimedia API" ein Beispiel geschrieben, aber es ist keine Lizenzvereinbarung dabei und ich habe keine Ahnung, ob das Urheberrecht es erlauben würde, den Code zu posten... Ich würde vorschlagen, du schaust dir im MSDN mal den Teil zum Mixer-API an: http://msdn.microsoft.com/library/en...mixer_10xf.asp

MfG,
d3g

moin339 4. Nov 2002 13:46

Moin!

Zitat:

Zitat von sakura
Nochmals, die Geräte sind von 0 bis Anzahl-1 durchnummeriert.

Wenn du meinst, dass des nur ein gerät gibt wäre die nummer 0, oder nich? aber ich glaube auch, dass die funktion nicht für den ganzen mixer ist.

Danke für den Link. Ich hätte da mal suchen müssen :oops:


cu, moin339 :coder:

moin339 5. Nov 2002 20:48

Moin!

Ich hab mal ein bischen in der win32.hlp gestöbert und bin auf die API funktion MixerSetControlDetails gestoßen. Ich möchte mit mixerSetControlDetails die Lautstärke setzen, aber die funktion benötigt als parameter ein "Handle of the mixer device object" vom Typ hmxobj. Ich habe bis jetzt keine Idee wie ich an dieses Handle kommen soll.

Kennt sich einer von euch gut mit API aus und weiß wie man das Handle ermittelt? Das ist mein erstes Programm, bis auf ein paar kleinen Übungen, und ich glaube gleich mit API anzufangen war etwas zu kompliziert. :? Aber man programmiert ja um Probleme zu lösen ;-)

Also: Hat jemand einen Tip?

ciao, moin339 :coder:

P.S. Vielleich kann ein Mod das Topic ja in Multimedia oder Windows API verschieben. Ich glaube da passt das besser hin.
[edit=FuckRacism]Gone to API[/edit]

Evilboyz 14. Jan 2003 10:46

Die (Master-) Lautstärke des Soundkarten-Mixers einstellen
 
http://www.delphi-fundgrube.de/faq10.htm

Unter diesem Link gibt es ein Beispiel, ich hab das mal ausprobiert und bei mir funktioniert das wunderbar ....
viel Spaß damit!

moin339 14. Jan 2003 12:29

Danke aber ich hatte das problem schon gelöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz