Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 11. Jun 2003, 11:39
Moin Data,

WaveOutSetVolume erwartet als 2. Parameter ein DWORD, wobei linker/rechter Kanal im nieder/höherwertigen WORD liegen.

So müsste die Methode genügen:

Delphi-Quellcode:
procedure TTWKom.setVolume(Value: Longint);
begin
   if active then
   begin
      fVolume := Value;
      waveoutsetvolume(acmOut.FWaveOutHandle, (Word(Value) shl 16) or (Word(Value)));
   end;
end;
BTW: Für Dein IntToHexStr kennt Delphi IntToHex.

[EDIT]
Allerdings dürfte das Ganze bei Dir recht leise werden, da der Wertebereich für die Lautstärke von $0000 bis $FFFF reicht (0-65535), Du aber nur 0-255 zulässt.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat