Toon posts:

[delphi] Volume/Mixer muten

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Heeft iemand misschien een component of een voorbeeld van hoe ik de audio mute in Delphi.

Dus je drukt op een knop en alles (main volume) is gemute.
(Het mute-checkboxje in je mixer is dan dus aangevinkt).

Ik kan het echt nergens vinden.

Daarnaast is er volgens mij geen help over MMSystem.
Als ik de source bekijk en hulp op wil vragen van bijvoorbeeld TMixerControls dan kan die niets vinden.

Alvast bedankt.

  • jopiek
  • Registratie: September 2000
  • Laatst online: 21-08 19:56

jopiek

Tja... 'ns ff denken.

uses MMSystem;

type
TVolumeRec = record
case Integer of
0: (LongVolume: Longint);
1: (LeftVolume, RightVolume : Word);
end;

const DeviceIndex=5
{0:Wave
1:MIDI
2:CDAudio
3:Line-In
4:Microphone
5:Master
6:PC-loudspeaker}

procedure SetVolume(aVolume:Byte);
var Vol: TVolumeRec;
begin
Vol.LeftVolume := aVolume shl 8;
Vol.RightVolume:= Vol.LeftVolume;
auxSetVolume(UINT(DeviceIndex), Vol.LongVolume);
end;

function GetVolume:Cardinal;
var Vol: TVolumeRec;
begin
AuxGetVolume(UINT(DeviceIndex),@Vol.LongVolume);
Result:=(Vol.LeftVolume + Vol.RightVolume) shr 9;
end;

Cogito Ergo Credo


Verwijderd

Op woensdag 19 september 2001 17:06 schreef Reptile het volgende:
[..]
Daarnaast is er volgens mij geen help over MMSystem.
Als ik de source bekijk en hulp op wil vragen van bijvoorbeeld TMixerControls dan kan die niets vinden.
Zeker wel, alleen TMixerControl is een Delphi-record-type voor het meer algemene type MIXERCONTROL zoals dat in de Microsoft Multimedia Programmer's Reference heet. Van functies als auxSetVolume kun je gewoon met F1 help opvragen.

Verwijderd

Topicstarter
Op woensdag 19 september 2001 17:16 schreef jopiek het volgende:
uses MMSystem;

type
TVolumeRec = record
case Integer of
0: (LongVolume: Longint);
1: (LeftVolume, RightVolume : Word);
end;

const DeviceIndex=5
{0:Wave
1:MIDI
2:CDAudio
3:Line-In
4:Microphone
5:Master
6:PC-loudspeaker}

procedure SetVolume(aVolume:Byte);
var Vol: TVolumeRec;
begin
Vol.LeftVolume := aVolume shl 8;
Vol.RightVolume:= Vol.LeftVolume;
auxSetVolume(UINT(DeviceIndex), Vol.LongVolume);
end;

function GetVolume:Cardinal;
var Vol: TVolumeRec;
begin
AuxGetVolume(UINT(DeviceIndex),@Vol.LongVolume);
Result:=(Vol.LeftVolume + Vol.RightVolume) shr 9;
end;
Ja, zo ver was ik ook wel, maar het gaat mij erom dat ik m'n main-volume kan muten.

Tuurlijk kan ik het volume op 0 zetten, maar das een beetje nep en dat zoek ik ook niet.

Ik wil gewoon met 1 druk op de knop m'n volume kunnen muten, en met diezelfde knop weer kunnen... erm.. un-muten.

Toch bedankt.