Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Использование звука   Найти похожие ветки 

 
Начинающий делфер   (2002-09-30 07:12) [0]

Народ, такая проблема! Надо чтобы из моей проги можно было прибавлять и убавлять звук. Как енто сделать.

Заранее спасибо!


 
Opuhshii ©   (2002-09-30 09:08) [1]

mixerSetControlDetails()
mixerGetControlDetails().. соответственно,.. ;)


 
alxx ©   (2002-09-30 10:49) [2]

Type TDMCIDevice = (dmciMaster, dmciWave, dmciMIDI, dmciCD);

Function GetVolumeControlID(DEV:TDMCIDevice):Integer;
Function SetVolume(dwVolume:DWORD;DEV:TDMCIDevice):Boolean;

implementation

Function SetVolume;
Var mxcd:TMIXERCONTROLDETAILS;
mxcd_u:MIXERCONTROLDETAILS_UNSIGNED;
mmr:Integer;
ghmx:Integer;

Begin
ghmx:=0;
mxcd.cbStruct := sizeof(mxcd);
mxcd.dwControlID := GetVolumeControlID(DEV);
mxcd.cChannels := 1;
mxcd.cMultipleItems := 0;
mxcd.cbDetails := 4;
mxcd.paDetails := @mxcd_u;
mmr := mixerGetControlDetails(HMIXEROBJ(ghmx), @mxcd, 0);

if (MMSYSERR_NOERROR <> mmr) Then Begin Result:= FALSE; Exit; End;

mxcd_u.dwValue := dwVolume*655;

mmr := mixerSetControlDetails(HMIXEROBJ(ghmx), @mxcd, 0);

if (MMSYSERR_NOERROR <> mmr) Then Begin Result:=FALSE; Exit; End;

Result:=TRUE;
End;

Function GetVolumeControlID;
Var mxl:MIXERLINE;
ghmx:Integer;
mxc:MIXERCONTROL;
mxlc:MIXERLINECONTROLS;
Begin
ghmx:=0;

mxl.cbStruct := sizeof(MIXERLINE);

Case DEV of
dmciMaster: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
dmciWave : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;
dmciMIDI : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;
dmciCD : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC;
End;

if (mixerGetLineInfo(HMIXEROBJ(ghmx), @mxl,
MIXER_OBJECTF_HMIXER or MIXER_GETLINEINFOF_COMPONENTTYPE)
<> MMSYSERR_NOERROR) THen Begin Result:=34;Exit;End;
mxlc.cbStruct := sizeof(MIXERLINECONTROLS);
mxlc.dwLineID := mxl.dwLineID;
mxlc.dwControlType := MIXERCONTROL_CONTROLTYPE_VOLUME;
mxlc.cControls := 1;
mxlc.cbmxctrl := sizeof(MIXERCONTROL);
mxlc.pamxctrl := @mxc;
if (mixerGetLineControls(HMIXEROBJ(ghmx), @mxlc,
MIXER_OBJECTF_HMIXER or MIXER_GETLINECONTROLSF_ONEBYTYPE)
<> MMSYSERR_NOERROR) Then Begin Result:=34; Exit; End;

Result:=mxc.dwControlID;
End;



 
Squeez ©   (2002-10-02 05:13) [3]

Cамое эффективное использовать готовую и отлаженную компоненту для работы с миксером.

Например:
http://www.fi.muni.cz/~xkovalc/zip/amixer.zip

<Большое спасибо ее автору>



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
1-62614
EvgeniyM
2003-01-09 13:40
2003.01.20
Вопрос по TPopupMenu


1-62660
Johnny
2003-01-09 22:53
2003.01.20
TImage:вопросик


14-62733
MAloi
2002-12-30 11:22
2003.01.20
Delphi 6 and Delphi 7 ?


7-62866
Извращенец2
2002-11-06 15:02
2003.01.20
Версия *.exe файла


14-62754
Alikm
2003-01-02 16:54
2003.01.20
Привет!!!