Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DirectSound, AEC и буфер захвата [D7, WinXP]


Gear ©   (2009-04-23 18:27:00) 

Создаю программу для записи с микрофона средствами DirectSound. При включении в свойствах описания буфера захвата эффект подавления акустического эха получаю ошибку:

HRESULT: 0x800401f0 (2147746288)
Name: CO_E_NOTINITIALIZED
Description: CoInitialize has not been called.
Severity code: Failed
Facility Code: FACILITY_ITF (4)
Error Code: 0x01f0 (496)



var
   FDSCB           :iDirectSoundCaptureBuffer;
   FDSC            :IDirectSoundCapture8;
   FDSCBDesc       :TDSCBUFFERDESC;
begin
...
 FResult:=DirectSoundCaptureCreate8(FGUID,FDSC,nil);
 if FResult<>DS_OK then
 Begin
 ...
 end;

 ZeroMemory(@dsEffect[0],sizeof(TDSCEffectDesc));
 dsEffect[0].dwSize := sizeof(TDSCEffectDesc);
 dsEffect[0].dwFlags := DSCFX_LOCSOFTWARE; //DSCFX_LOCHARDWARE
 dsEffect[0].guidDSCFXClass := GUID_DSCFX_CLASS_AEC;
 dsEffect[0].guidDSCFXInstance:=GUID_DSCFX_SYSTEM_AEC;
 dsEffect[0].dwReserved1:=0;
 dsEffect[0].dwReserved2:=0;

 ZeroMemory(@dsEffect[1],sizeof(TDSCEffectDesc));
 dsEffect[1].dwSize := sizeof(TDSCEffectDesc);
 dsEffect[1].dwFlags := DSCFX_LOCSOFTWARE; //DSCFX_LOCHARDWARE
 dsEffect[1].guidDSCFXClass := GUID_DSCFX_CLASS_NS;
 dsEffect[1].guidDSCFXInstance:=GUID_DSCFX_SYSTEM_NS;
 dsEffect[1].dwReserved1:=0;
 dsEffect[1].dwReserved2:=0;

 with FDSCBDesc do
 Begin
   dwSize:=sizeof(TDSCBUFFERDESC);
   dwFlags:=DSCBCAPS_CTRLFX;
   dwBufferBytes:=notifysize*notifycount;
   lpwfxFormat:=FFormat;
   dwFXCount:=2;
   dwReserved:=0;
   lpDSCFXDesc:=@dsEffect;
 End;

 FResult:=FDSC.CreateCaptureBuffer(FDSCBDesc,FDSCB,nil);
 if FResult<>DS_OK then
 Begin
   //тут сообщается об ошибке, что выше.
 end;


Где тут что не так может быть?


noH@ker   (2009-04-23 20:20:00) [1]

Эффекты, насколько я знаю, поддерживаются IDirectSoundCaptureBuffer8


Наверх

Титульная страница Поиск, карта сайта Написать письмо