Я использую PortAudio для записи многоканальных аудиоданных. Я хочу сохранить данные из каждого канала в виде отдельного файла. Поэтому я должен выполнить некоторую работу File IO в программе. Поскольку в документе рекомендуется не выполнять какую-либо работу ввода-вывода в функции обратного вызова, так как они вызываются с высокой частотой.Где я должен выполнять загрузку файла IO в PortAudio, если не в обратных вызовах
Затем, как правильно выполнить работу ввода-вывода? Должен ли я начать другой поток?
Заранее благодарим за чтение моего сообщения!
Спасибо за ответ. Я нашел то, что разделяет тот же дух, что и вы сказали. Существует структура данных, называемая RingBuffer, которая обрабатывает запись и чтение с несколькими потоками параллельно. В функции обратного вызова я должен записать в кольцевой буфер, используя отдельный поток, чтобы прочитать кольцевой буфер и записать в файл. – Foreverniu
Ах да! круговые буферы - это путь. Я бы читал круговые буферы в массивах ... так что если бы у вас был массив размером 2048, я бы прочитал его каждые 1024 образца или что-то в этом роде. Таким образом, вы не тратите время на чтение/запись каждого образца –