![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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..