Итак, я записываю файл WAVE, используя 16-битные сэмплы PCM, полученные из виджета , который передает их в режиме реального времени.Довольно простые вещи, верно?За исключением проблемы, что виджет может динамически изменять частоту дискретизации аудиоданных , которые он отправляет.
Он может начинаться с хорошего потока 44,1 кГц, но затем может измениться на частоту дискретизации 23 кГц или наоборот.Насколько я понимаю, обычные файлы WAVE не обрабатывают различные частоты дискретизации, как это, поэтому я пытаюсь определить наилучший способ справиться с ситуацией.
Один из подходов, который я предложил, заключался в том, чтобы поместить что-то вроде ResamplerDmoStream
перед WaveFileWriter
, фиксируя WaveFileWriter
на частоте дискретизации 44,1 кГц и просто передискретизируя все входящие данные до 44,1 кГц.
Еще одна идея, которая может сработать, - найти поддерживаемый выходной файлформат, который может иметь встроенную поддержку различной частоты дискретизации , записать все данные в этот файл и затем выполнить шаг повторной дискретизации после обработки, чтобы создать обычный файл WAVE с частотой 44,1 кГц.
Кто-нибудь еще имел дело с такой ситуацией, и у него есть идея получше?
Спасибо!
Мир!