AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wave Lautstärke in Prozent angeben

Ein Thema von Nils_13 · begonnen am 25. Okt 2005 · letzter Beitrag vom 25. Okt 2005
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 14:37
Hi,

ich lass mir in zwei Labels die Wave-Lautstärke per
Delphi-Quellcode:
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;
ausgeben. Nur wie wandle ich das jetzt in Prozent um ?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 15:41
HAllo ,
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
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 15:46
Zitat von freak4fun:
HAllo ,
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
Die Maximallaustärke ist '65535', diese muss ich erst durch 100 teilen, und dann noch mit dem Wert der aktuellen Lauststärke multiplizieren, aber wie ich hier
vollabel.Caption := IntToStr(VolLi) * StrToInt( 100); noch / 100 * vollabel.Caption einbaue weiß ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 15:53
label1.Caption := FloatToStr((100 * (65535 / 2{DEr Wert hier Hälfte})) / 65535)
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 16:02
Ich habe ein Volume-Trackbar. Hiermit setze und lese ich die Lautstärke aus
Delphi-Quellcode:
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;
weil so hab ich ja immer 50%. Es soll aber der aktuelle Wert in Prozent angegeben werden.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 16:17
Nächste Versuch...


Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Label1.Caption := FloatToStrF(((TrackBar1.Position / 65535) * 100), ffFixed, 3, 0) + '%';
end;
[edit]MAXWert der Trackbar ist 65535[/edit]
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 16:51
Zitat von freak4fun:
Nächste Versuch...


Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Label1.Caption := FloatToStrF(((TrackBar1.Position / 65535) * 100), ffFixed, 3, 0) + '%';
end;
[edit]MAXWert der Trackbar ist 65535[/edit]
Dabei entsteht dann irgendeine Zugriffsverletzung.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 17:02
Zitat von Nils_13:
Zitat von freak4fun:
Nächste Versuch...


Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Label1.Caption := FloatToStrF(((TrackBar1.Position / 65535) * 100), ffFixed, 3, 0) + '%';
end;
[edit]MAXWert der Trackbar ist 65535[/edit]
Dabei entsteht dann irgendeine Zugriffsverletzung.
Ich darf davon ausgehen, das du diesen Code angepasst hast. Könntest du bitte mal posten, woher du die aktuelle Lautstärke bekommst? Unterscheidet sich dabei die Lautstärke des rechten Kanals von der des Linken?

Ich möchte dir gern helfen, aber wir scheinen irgendwie an einander vorbei zu reden.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 17:04
wenn das maximum 65535 ist .. dann reicht es doch schon einfach den istwert durch 655,35 zu teilen und schon hab ich die % oder sehe ich da was zu simpel?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#10

Re: Wave Lautstärke in Prozent angeben

  Alt 25. Okt 2005, 17:09
Zitat von freak4fun:
Zitat von Nils_13:
Zitat von freak4fun:
Nächste Versuch...


Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Label1.Caption := FloatToStrF(((TrackBar1.Position / 65535) * 100), ffFixed, 3, 0) + '%';
end;
[edit]MAXWert der Trackbar ist 65535[/edit]
Dabei entsteht dann irgendeine Zugriffsverletzung.
Ich darf davon ausgehen, das du diesen Code angepasst hast. Könntest du bitte mal posten, woher du die aktuelle Lautstärke bekommst? Unterscheidet sich dabei die Lautstärke des rechten Kanals von der des Linken?

Ich möchte dir gern helfen, aber wir scheinen irgendwie an einander vorbei zu reden.

MfG
freak
Gibts hier einen Smilie, der einen Selbstmord darstellt. Thx, jetzt läufts, hab das mit der tb übersehen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz