Форум: "Media";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Вниз
Использование звука Найти похожие ветки
← →
Начинающий делфер (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 вся ветка
Форум: "Media";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c