Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Haupt Lautstärke Regeln (https://www.delphipraxis.net/87167-haupt-lautstaerke-regeln.html)

hedie 24. Feb 2007 11:41


Haupt Lautstärke Regeln
 
Hallo

Die einen denken sicher.. ach mann wieder mal jemand der die suche nicht benutzt... doch ich habe sie benutzt


Wie ich die Wave Lautstärke regeln kann weiss ich, aber ich möchte die HauptLautstärke regeln


Hoffe ihr habt ne idee

Danke

grüsschen

hedie 24. Feb 2007 11:53

Re: Haupt Lautstärke Regeln
 
für wave benutze ich diesen code

Delphi-Quellcode:
procedure SetVolume(const volL, volR: Word);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  // init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  vol:= volL + volR shl 16;
  // set volume
  waveOutSetVolume(hWO, vol);
  waveOutClose(hWO);
end;
kann man den irgendwie für die "Hauptlautstärke" umwandeln?

marabu 24. Feb 2007 12:14

Re: Haupt Lautstärke Regeln
 
Hallo Claudio,

mit waveOutSetVolume() kontrollierst du nur die Lautstärke eines speziellen Audio Device.

Vielleicht hilft dir ein Blick auf diesen Code. Beachte den DeviceIndex 5 (MASTER).

Grüße vom marabu

hedie 24. Feb 2007 12:23

Re: Haupt Lautstärke Regeln
 
Danke

Das problem

Delphi-Quellcode:
procedure SetVolume(aVolume:Byte);
var
Volu: TVolumeRec;
begin
   Volu.LeftVolume := aVolume shl 8;
   Volu.RightVolume:= Volu.LeftVolume;
   auxSetVolume(UINT(DeviceIndex), Volu.LongVolume) ;
end;
er kennt aVolume nicht

hedie 24. Feb 2007 12:27

Re: Haupt Lautstärke Regeln
 
:wall: Ok habs herausgefunden


hatte ne zweite Prozedure mit gleichem namen

hedie 24. Feb 2007 12:36

Re: Haupt Lautstärke Regeln
 
Irgendwie funktioniert das nicht....

Kann es daran liegen, das ich SoundMax für die Steuerung benutze und nicht den Windows Regler?

turboPASCAL 24. Feb 2007 15:15

Re: Haupt Lautstärke Regeln
 
[code=delphi]uses MMSystem;

const
MasterVolumeControl = 0;
MaxVolume = 65535;
MinVolume = 0; // ;-)

function _VolumeControl(Mixer: hMixerObj;
var Control: TMixerControl): MMResult;
var
Line : TMixerLine;
Controls : TMixerLineControls;
begin
ZeroMemory(@Line, SizeOf(Line));
Line.cbStruct := SizeOf(Line);
Line.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
Result := mixerGetLineInfo(Mixer,
@Line,
MIXER_GETLINEINFOF_COMPONENTTYPE);
if Result = MMSYSERR_NOERROR then begin
ZeroMemory(@Controls, SizeOf(Controls));
Controls.cbStruct := SizeOf(Controls);
Controls.dwLineID := Line.dwLineID;
Controls.cControls := 1;
Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_VOLUME;
Controls.cbmxctrl := SizeOf(Control);
Controls.pamxctrl := @Control;
Result := mixerGetLineControls(Mixer,
@Controls,
MIXER_GETLINECONTROLSF_ONEBYTYPE);
end;
end;

procedure SetMasterVolume(Mixer: hMixerObj; Value: Word);
var
MasterVolume : TMixerControl;
Details : TMixerControlDetails;
UnsignedDetails : TMixerControlDetailsUnsigned;
Code : MMResult;
begin
Code := _VolumeControl(Mixer, MasterVolume);
if Code = MMSYSERR_NOERROR then begin
with Details do begin
cbStruct := SizeOf(Details);
dwControlID := MasterVolume.dwControlID;
cChannels := 1; // set all channels
cMultipleItems := 0;
cbDetails := SizeOf(UnsignedDetails);
paDetails := @UnsignedDetails;
end;
UnsignedDetails.dwValue := Value;
Code := mixerSetControlDetails(Mixer,
@Details,
MIXER_SETCONTROLDETAILSF_VALUE);
end;
if Code <> MMSYSERR_NOERROR then
raise Exception.CreateFmt('SetMasterVolume failure, '+
'multimedia system error #%d', [Code]);
end;

function GetMasterVolume(Mixer: hMixerObj): Word;
var
MasterVolume : TMixerControl;
Details : TMixerControlDetails;
UnsignedDetails : TMixerControlDetailsUnsigned;
Code : MMResult;
begin
Result := 0;

Code := _VolumeControl(Mixer, MasterVolume);
if Code = MMSYSERR_NOERROR then begin
with Details do begin
cbStruct := SizeOf(Details);
dwControlID := MasterVolume.dwControlID;
cChannels := 1; // set all channels
cMultipleItems := 0;
cbDetails := SizeOf(UnsignedDetails);
paDetails := @UnsignedDetails;
end;
Code := mixerGetControlDetails(Mixer,
@Details,
MIXER_GETCONTROLDETAILSF_VALUE);

Result := UnsignedDetails.dwValue;
end;
if Code <> MMSYSERR_NOERROR then
raise Exception.CreateFmt('GetMasterVolume failure, '+
'multimedia system error #%d',
Code:
);
end;

procedure TFormX.Foo...
begin
  // Set
  SetMasterVolume(MasterVolumeControl, 0815); // MaxVolume => 65535

  // Get
  Caption := IntToStr( GetMasterVolume(MasterVolumeControl) );
end;
:mrgreen:

hedie 24. Feb 2007 15:23

Re: Haupt Lautstärke Regeln
 
Danke :D

turboPASCAL 24. Feb 2007 16:04

Re: Haupt Lautstärke Regeln
 
Bitte. :stupid:

Aike 16. Mär 2007 09:38

Re: Haupt Lautstärke Regeln
 
Hm, man sagte mir, damit könne man auch die anderen Lautstärken auslesen, aber ich hab keine Ahnung, wo ich den Code da verändern muss. Ich hab einiges ausprobiert, aber ich kenne mich mit der Mixer-Materie kaum aus :-/

Ich würde gerne die Lautstärken von LineIn, Wave, CD-Player und Mikrophon auslesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.
Seite 1 von 3  1 23      

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