![]() |
WaveMapper L/R
Hey, nochmal euer DJ!
Also, ich möchte zu einer best. Uhrzeit den LautstärkePegel für Waves auf 100% haben. Aber mein kleines süßes Delphi *würg* setzt mit diesem Code:
Delphi-Quellcode:
Die Lautstärke immer auf 100%, jedoch die balance komplett nach rechts. Wie lautet der Code für den anderen Kanal?
if TimeToStr(now)>= '00:00' then WaveOutSetVolume(wave_mapper,65000);
Danke im Vorraus Dj-SPM |
|
Also,
erstmal danke für deine Hilfe, aber so ehrlich gesagt verstehe ich das jetzt nicht. Könntest du dich vielleicht hinreißen lassen, mir noch ein wenig zu helfen *g*? |
Moin DJ-SPM,
könntest Du bitte mal erläutern was Du nicht daran verstehst. 'ist sonst etwas schwierig zu helfen. ;-) |
Ja hi,
also ich hatte ja den normalen Wave_Mapper Code, wie ich ihn oben beschrieben habe. Hatte ja nur das Problem dass er automatisch 100% auf den rechten Speaker setzt. Daraufhin meintest du, dass ich den einen Code aus dem Link einfügen sollte, weiss aber nicht, wie ich ihn mit der DWORD implementieren soll. Hoffe du weisst, was ich meine. Am einfachsten wäre es, du würdest mir mal einen Code geben, wie du meinst, dass er aussehen soll. Vielen Danke für deine tolle Hilfe, DJ-SPM |
Moin DJ-SPM,
ich hatte nicht gesagt, dass Du den Code von dort übernehmen kannst, sondern dass ich dort erklärt hatte, wie die Lautstärkeregelung für zwei Kanäle erfolgt. Lies Dir das doch noch einmal in Ruhe durch. Zitat:
|
Re: WaveMapper L/R
Hi Chris...
also, ich nahm mir deinen Ratschlag, den Thread in Ruhe durchzulesen, zu Herzen und muss einräumen ... das ich nur Bahnhof verstehe. :wall: Könntest du mir den Code für den 2.Kanal mal geben und mir vielleicht danach erklären, denn ich denke, dass das so nichts wird... Das wäre nett.. Ciao DJ-SPM |
Re: WaveMapper L/R
Mensch Chris, jetzt spann' ihn doch wegen zwei Zeilen code nicht auf die Folter...
Delphi-Quellcode:
Und die Erklärung findet sich auch im SDK wieder:
var
NewVolume: Word; begin NewVolume := 123; // gewünschte Lautstärke (0..65535) WaveOutSetVolume(wave_mapper, NewVolume or (NewVolume shl 16); Zitat:
|
Re: WaveMapper L/R
Klasse!
Danke. Funzt einwandtfrei. Bi szum nächsten Mal |
Re: WaveMapper L/R
Moin DJ-SPM,
dann will ich mal versuchen, das zu erklären: Der zweite Parameter von WaveOutSetVolume setzt sich eigentlich aus zwei Parametern zusammen, nämlich einem Wert für die Lautstärke des linken und einem für die Lautstärke des rechten Kanals. Der Parameter ist ein DWORD, also ein 32 Bit Wert ohne Vorzeichen. Dies kann man aber auch ansehen, als zwei unmittelbar aufeinander folgende Werte vom Typ WORD (16 Bit ohne Vorzeichen) Das höherwertige WORD steht hierbei für die Lautstärke des rechten Kanals, das niederwertige für die des linken. Der Wertebereich für ein WORD geht von 0 bis 65535 (Du hattest also nicht ganz Vollausschlag ;-) ) Hexadezimal wäre das FFFF. In Deinem Beispiel, 65000, hätte nun also das niederwertige WORD den Wert 65000 (passt ja rein) und das höherwertige den Wert 0. Folge: Auf dem rechten Kanal kommt nichts, auf dem linken hast Du fast volle Lautstärke. Um jetzt den Wert für den rechten zu setzen, muss dieser in das höherwertige Word. Dieses befindet sich, sozusagen, 16 links des niederwertigen WORDs. Um bei Deinem Beispiel zu bleiben: 65000 dez ist FDE8 Hex. Damit beide Kanäle also diesen Wert bekommen, müsste als Parameter FDE8FDE8 übergeben werden. Dazu kannst Du dann einfach einer Variablen vom Typ DWORD den gewünschten Wert geben, und musst dann beim Aufruf der Funktion nur noch dafür sorgen, dass dieser Wert auch im höherwertigen WORD steht. Dies geht am einfachsten mit shl (Shift Left) Beispiel:
Delphi-Quellcode:
War das jetzt verständlicher?
var
dwVolume : DWORD; begin dwVolume := $FDE8; // Die 65000 aus Deinem Beispiel // durch shl 16 wird der Wert in das höherwertige WORD verschoben // dwVolume shl 16 wäre also gleich $FDE80000 // dwVolume selber ist $0000FDE8 WaveOutSetVolume(wave_mapper,(dwVolume shl 16) or dwVolume); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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