Я использую мультимедийные API Windows для записи и обработки волнового аудио (waveInOpen
и друзья). Я хотел бы использовать небольшое количество буферов в циклическом режиме.
Я знаю, что вы должны использовать waveInPrepareHeader
перед добавлением буфера в устройство, и что вы должны вызывать waveInUnprepareHeader
после того, как волновое устройство "вернет буфер приложению" и до того, как вы освободите его.
Мой вопрос: нужно ли мне готовиться и повторно готовиться, чтобы повторно использовать буфер? Или я могу просто добавить ранее использованный буфер обратно на устройство?
Кроме того, имеет ли значение, в какой теме я это делаю? Я использую функцию обратного вызова, которая, похоже, вызывается в рабочем потоке, принадлежащем аудиосистеме. Могу ли я вызвать waveInUnprepareHeader
, waveInPrepareHeader
и waveInAddBuffer
в этом потоке во время обратного вызова?