"УТЕЧКА" дАННЫХ пРИ зАПИСИ
Уважаемые коллеги! Помогите разобраться в следующем. Пишу звук через Wave API (WaveInOpen и т.д.). "Подкидываю" буферы на "лету". Но вот в чем беда - при разворачивании-сворачивании окон в винде, общее время записи при этом уменьшается (теряю буферы). Большой размер буфера (потери снижаются) делать не хочется - использую 1/8 либо 1/16 сек. Пробовал через СООБЩЕНИЯ окну CALLBACK_WINDOW и через СОБЫТИЯ CALLBACK_EVENT. НЕ ПОМОГАЕТ! Подскажите пожалуйста, как быть?
Цитата:
Originally posted by zardoz
Уважаемые коллеги! Помогите разобраться в следующем. Пишу звук через Wave API (WaveInOpen и т.д.). "Подкидываю" буферы на "лету". Но вот в чем беда - при разворачивании-сворачивании окон в винде, общее время записи при этом уменьшается (теряю буферы). Большой размер буфера (потери снижаются) делать не хочется - использую 1/8 либо 1/16 сек. Пробовал через СООБЩЕНИЯ окну CALLBACK_WINDOW и через СОБЫТИЯ CALLBACK_EVENT. НЕ ПОМОГАЕТ! Подскажите пожалуйста, как быть?
Уважаемые коллеги! Помогите разобраться в следующем. Пишу звук через Wave API (WaveInOpen и т.д.). "Подкидываю" буферы на "лету". Но вот в чем беда - при разворачивании-сворачивании окон в винде, общее время записи при этом уменьшается (теряю буферы). Большой размер буфера (потери снижаются) делать не хочется - использую 1/8 либо 1/16 сек. Пробовал через СООБЩЕНИЯ окну CALLBACK_WINDOW и через СОБЫТИЯ CALLBACK_EVENT. НЕ ПОМОГАЕТ! Подскажите пожалуйста, как быть?
Попробуй CALLBACK_FUNCTION, отлично работает. Прототип функции
static void CALLBACK waveInProc(HWAVEIN hwi,
UINT uMsg,
DWORD dwInstance,
DWORD dwParam1,
DWORD dwParam2)
{
if ( uMsg == WIM_DATA )
{
//принимаешь буфер
}
}
Открываешь устройство записи примерно так:
if( waveInOpen ( , , , /*указатель на функцию, которая будет вызываться при всех событиях*/(DWORD)waveInProc,/*свои данные, которые будут передаваться функции в параметре dwInstance*/, CALLBACK_FUNCTION ) !=MMSYSERR_NOERROR)
{
//что-то не сработало
}
Могу выслать исходники, если надо. С уважением, GENA_DJ.
Процессу записи поставь приоритет TimeCritical
Цитата:
Могу выслать исходники, если надо. С уважением, GENA_DJ.
Меня тоже интересует данная тема.
Вышлите, пожалуйста, на [email]nuken@pochta.ru[/email]
Спасибо!