type TForm1 = class(TForm) ScrollBar1: TScrollBar; procedure ScrollBar1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ScrollBar1Change(Sender: TObject); begin //Scrollbaren's minimum værdi er sat til 0 Maksimum sat til 65535! //Scrollbaren styrer volumen... waveOutSetVolume(0,Scrollbar1.Position); end;
procedure TForm1.FormCreate(Sender: TObject); begin waveOutSetVolume(0, 0); //Sætter lyden lig 0; end;
>>Delphi: Jo det tror jeg også, jeg har faktisk prøvet at få det med mixeren til at virke kan bare ikke finde ud af hvordan den skal bruge/få den til at virke :(
42 point hvis du kan fortælle mig hvordan den bruges :)
Jeg har lige prøvet at kigge lidt på sagen (via help files). Jeg kan ikke lige umiddelbart finde hvorledes man styrer Master Volume (tilgengæld er der masser af henvisninger til Wave og AUX (Line Out) volume ændringer).
Er der iøvrigt ikke en eller anden DirectX (DirectSound) rutine der kan anvendes. Det kunne nemt tænkes at det var nemmere at gå igennem DirecX API'et end at benytte Mixers. Mixers ser ud til at behøve en stabil blanding af functionskald og underlige record strukture.
Jeg sad lige i weekenden og kiggede lidt på det - dvs. jeg lavede et test program (med Mixers). Jeg har ikke nogen problemer med at få de forskellige Mixer kald (dvs. MixerOpen, MixerGetControlDetails, MixerGetLineInfo mv.) til at virke - der er bare et problem: Hvor fa... er den værdi man skal læse/skrive til for at få/ændere den aktuelle volumen indstilling?
Dokumentationen mangler i mine øjne noget vedr. mixers....
Jeg fandt nogle constant'er man bruger i forbindelse med getlineinfo (tror jeg nok, eller en af de andre funktioner) som hed noget med volume... så det er der nok :)
min email er forøvrigt snorga@mail.dk, hvis du gider sende dit test program.
Mixeren kan udskiftes med andre typer. Master-volumen hedder således: MIXERLINE_COMPONENTTYPE_DST_SPEAKERS Wave-volumen hedder således: MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT
Hvis du vil bruge mute, kan du bare sætte højre og venstre til 0. Der skal nok tilføjes et par ekstra ting i 'USES'. I hvert fald MMSystem og ExtCtrls.
Tak, men mute ved at sætte volumen til 0 er vist ikke så smart, for hvordan "un-mute" man så igen?
Synes godt om
Ny brugerNybegynder
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.