Avatar billede spectual Nybegynder
01. maj 2001 - 14:15 Der er 5 kommentarer og
1 løsning

Master volume på lydkortet

Hvordan kan man ændre master volumen på ens lydkort med et delphi program?
Avatar billede borrisholt Novice
01. maj 2001 - 14:19 #1
På torry.net kan du downloade noget software til at styre lyden. Kig på disen http://www.torry.net/mixer.htm

Jens B (http://fotx.net/borrisholt)
Avatar billede makse Nybegynder
01. maj 2001 - 14:35 #2
Avatar billede snorga Nybegynder
02. maj 2001 - 11:35 #3
hehe.. Spectual.. Hvis du får det til at virke kan du få dine point(+12) igen :)

se:
http://www.eksperten.dk/spm/9237
Avatar billede spectual Nybegynder
02. maj 2001 - 12:59 #4
?
Avatar billede snorga Nybegynder
02. maj 2001 - 16:24 #5
Jeg har ikke kunne få det til at virke endnu, så hvis du får det til at virke og så svare på det spørgsmål, kan du få 42 point der :)
(42p-30p=12p)
Avatar billede makse Nybegynder
02. maj 2001 - 17:12 #6
Følgende virker fint hos mig. (To alm. buttons)

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MMSystem,
  ComCtrls, MPlayer, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i:integer;
implementation

{$R *.DFM}


function GetMasterVolumeControl( Mixer: hMixerObj; var Control: TMixerControl): MMResult;
{Returns True on success}
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 := GetMasterVolumeControl(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;


procedure TForm1.Button2Click(Sender: TObject);
begin
  I:=I+1000;
  setmastervolume(0,I);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  I:=I-1000;
  setmastervolume(0,I);
end;

begin
I:= 0;
end.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester