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