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

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

WaveInOpen и ACM проблема! [D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


gear ©   (2004-06-11 11:45:00) 

Имею следующую проблему. Скачал компонет ACMComponent и пытаюсь открыть на запись микрофон. С PCM никаких проблем. Глюки начинаются при работе с кодеками. Если вызывать окно менеджера ACM и ручками выбирать кодек то всё ок работает. Функция вполне выполняется:
WaveInOpen (@FHandle,FDeviceID,FFmtChooser.WaveFormatEx,DWORD(@WaveInProc),DWORD(Self),CALLBACK_FUNCTION or WAVE_MAPPED);
Однако формируя FFmtChooser.WaveFormatEx руками и скармливая структуру в эту же функцию  
WaveInOpen (@FHandle,FDeviceID,FFmtChooser.WaveFormatEx,DWORD(@WaveInProc),DWORD(Self),CALLBACK_FUNCTION or WAVE_MAPPED) вылетает ошибка 32.
Структуры WaveFormatEx абсолютно идентичны. Руками формирую такую же структуру что и отдаётся функции WaveInOpen через диалоговое окно ACM менеджера.
В чём может быть проблема и сталкивался ли кто с этим?


tinyimp   (2004-06-25 09:46:00) [1]

проблема может быть в том, что структуры не совсем идентичны. в них есть такое поле - cbSize (вроде) - указывает, сколько байт дополнительной информации расположено непосредственно в памяти за структурой. Заполнять это, может, и можно как-то руками, но я использовал функцию acmFormatSuggest..


Наверх

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