Главная страница
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.034 c
14-62789
Mike B.
2002-12-30 13:41
2003.01.20
Новогоднее обращение :-)


1-62487
ЮРИЙ_К
2003-01-10 11:54
2003.01.20
Хинт в трэе под ХР ???


3-62403
viper
2002-12-24 12:07
2003.01.20
DBGrid


4-62893
/-\|e}{
2002-12-01 12:32
2003.01.20
Сравнение файлов


3-62436
Sedov Vitalik
2002-12-15 21:28
2003.01.20
Еще один вопрос