Как захватить только один буфер?
От: _albert_  
Дата: 29.07.07 11:08
Оценка:
У меня есть опыт работы с захватом аудио в потоковом режиме. Но по долгу службы, возникла необходимость организовать захват короткого звукового фрагмента в строго определенные моменты времени. Для этого идеально было бы организовать незакольцованный буфер захвата нужной длинны. А как это сделать если в IDirectSoundCaptureBuffer::Start определен только один флаг — DSCBSTART_LOOPING?

Использование кольцовго метода не желательно, так как при этом возникнут ситуации когда нужный момент времени поподет на середину буфера и, соответственно, закончится в следующем буфере.

Вариант использования двух буферов (т.е. в нужный момент пишется первый буфер, и как только второй начинает писать тишину после нужного момента времени происходит прекращение захвата) не подходит, так как запись следующего нужного момента времени пойдет не сначала буфера. А достойного метода сброса маркера записи я не знаю.

Может я чего не понимаю? Или может аередать ноль функции IDirectSoundCaptureBuffer::Start?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.