Главная страница
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.025 c
14-62757
kronprince
2003-01-04 18:13
2003.01.20
Хотел задать очередной наболевший вопрос но передумал :(


1-62494
Gamar
2003-01-10 13:09
2003.01.20
Промотка TListView


1-62629
eugene_jin_t
2003-01-09 11:02
2003.01.20
Создание компонент


3-62421
NaemNIK
2002-12-26 14:41
2003.01.20
dll устанавливает лицензия, как это обойти?


14-62850
Марина
2003-01-03 15:13
2003.01.20
редактор с поддержкой .doc