waveOutSetVolume()
-
Hi!
In der MSDN Bibliothek wird die Lautstärkenregelung so erklärt: "New volume setting. The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting."Das heißt also, dass die niederwertigen 2 Halbbyte den linken channel beeinflussen und die höherwertigen 2 den rechten. Also z.B. 0x00ff würde den rechten Lautsprecher ausschalten und den linken auf volle Lautstärke.
Mein Problem ist, dass ich MONO benutze (also nur ein Channel) und wenn ich nun die Lautstärke reduzieren will z.B. 0x9999 dann ist auf einmal nur noch auf dem linken Lautsprecher etwas zu höhren!Warum? Funktioniert das bei MONO anders?
Danke für eure Hilfe!
-
Ein "Word" hat in Windows 16 Bits, "rechts aus, links volle Lautstärke" wäre also 0x0000FFFF. Das mit 0x9999 ist dann ja kein Wunder mehr, da bei 0x9999 das high-order-word 0 ist, der rechte Lautsprecher also aus. Mach 0x99999999.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ok das erklärt natürlich alles.
Jetzt habe ich noch ein Problem. Wie schaffe ich es, die gesamte Lautstärke (beider Lautsprecher) in einem Bereich von 0-100 regeln zu können?
also 100 = 0xffffffff und 0 = 0x00000000Gibts da irgend einen Trick, oder muss ich einfach multiplizieren? Obwohl die Lautstärke ja einen log. Verlauf hat. Das würde wahrscheinlich nicht so toll funktionieren.
-
@C_Cheaf: Darf ich davon ausgehen, dass du ein Voicechat mit ogg-speex programmierst? Wenn ja, würde ich dich gerne Fragen ob ein interesse an einem austausch besteht. Ich habe nämlich das gleiche Projekt.
mfg, ruuums.
-
Ja das stimmt. Habs mittlerweile fertig, bis auf das eine Problem hier.
Schreib mir einfach ne mail an peter[.]soxberger[at]gmx[.]net mit deinem Problem.
-
C_Cheaf schrieb:
Jetzt habe ich noch ein Problem. Wie schaffe ich es, die gesamte Lautstärke (beider Lautsprecher) in einem Bereich von 0-100 regeln zu können?
also 100 = 0xffffffff und 0 = 0x00000000Gibts da irgend einen Trick, oder muss ich einfach multiplizieren? Obwohl die Lautstärke ja einen log. Verlauf hat. Das würde wahrscheinlich nicht so toll funktionieren.
Prinzipiell einfach Dreisatz, ja. Wegen logarithmischem Verlauf: Kommt drauf an, ob das Maß die Lautstärke oder die Lautheit angibt.
-
Ok danke! Hat funktioniert!