![]() |
Wave Lautstärke in Prozent angeben
Hi,
ich lass mir in zwei Labels die Wave-Lautstärke per
Delphi-Quellcode:
ausgeben. Nur wie wandle ich das jetzt in Prozent um ?
procedure TForm1.GetVolume(var volL, volR: Word);
var hWO: HWAVEOUT; waveF: TWAVEFORMATEX; vol: DWORD; begin volL:= 0; volR:= 0; // init TWAVEFORMATEX FillChar(waveF, SizeOf(waveF), 0); // open WaveMapper = std output of playsound waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0); // get volume waveOutGetVolume(hWO, @vol); volL:= vol and $FFFF; volR:= vol shr 16; waveOutClose(hWO); end; procedure TForm1.ButtonClick; var VolLi, VolRe: Word; begin // volume GetVolume(VolLi,VolRe); vollabel.Caption:=IntToStr(VolLi); vollabel2.Caption:=IntToStr(VolRe); end; |
Re: Wave Lautstärke in Prozent angeben
HAllo :hi:,
du brauchst die maximale Lautstärke. Wie man die raus bekommt weiß ich auch nicht. Vielleicht mal Boxen aus und dann irgendwo rumspielen. ;) MfG freak |
Re: Wave Lautstärke in Prozent angeben
Zitat:
Delphi-Quellcode:
noch / 100 * vollabel.Caption einbaue weiß ich nicht.
vollabel.Caption := IntToStr(VolLi) * StrToInt( 100);
|
Re: Wave Lautstärke in Prozent angeben
Delphi-Quellcode:
label1.Caption := FloatToStr((100 * (65535 / 2{DEr Wert hier Hälfte})) / 65535)
|
Re: Wave Lautstärke in Prozent angeben
Ich habe ein Volume-Trackbar. Hiermit setze und lese ich die Lautstärke aus
Delphi-Quellcode:
weil so hab ich ja immer 50%. Es soll aber der aktuelle Wert in Prozent angegeben werden.
function TForm1.GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean;
var WaveOutCaps: TWAVEOUTCAPS; Volume: DWORD; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR; LVol := LoWord(Volume); RVol := HiWord(Volume); end; end; function TForm1.SetWaveVolume(const AVolume: DWORD): Boolean; var WaveOutCaps: TWAVEOUTCAPS; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR; end; |
Re: Wave Lautstärke in Prozent angeben
Nächste Versuch...
Delphi-Quellcode:
[edit]MAXWert der Trackbar ist 65535[/edit]
procedure TForm1.TrackBar1Change(Sender: TObject);
begin Label1.Caption := FloatToStrF(((TrackBar1.Position / 65535) * 100), ffFixed, 3, 0) + '%'; end; |
Re: Wave Lautstärke in Prozent angeben
Zitat:
|
Re: Wave Lautstärke in Prozent angeben
Zitat:
Ich möchte dir gern helfen, aber wir scheinen irgendwie an einander vorbei zu reden. :( MfG freak |
Re: Wave Lautstärke in Prozent angeben
:gruebel: wenn das maximum 65535 ist .. dann reicht es doch schon einfach den istwert durch 655,35 zu teilen und schon hab ich die % :gruebel: oder sehe ich da was zu simpel?
|
Re: Wave Lautstärke in Prozent angeben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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