Я разместил этот вопрос на форуме Qt, но не получил ответов. Вот почему я размещаю его здесь.
Я хотел знать, есть ли способ записи и воспроизведения звука одновременно в Qt. Я хочу записать звук с микрофона, и в то же время я хочу воспроизвести его в динамике/наушниках.
Есть ли способ сделать это в Qt? Или мне нужно использовать любую другую библиотеку?
Было бы здорово, если бы решение было кросс-платформенным (мне нужно покрыть окна, linux и mac). Если это невозможно, тогда будет работать Linux-решение.
Я использую Qt 4.7, кстати.
Edit
Моя последняя реализация дана здесь. Я создал подкласс класса QIODevice и повторно выполнил его writeData и readData, чтобы чтение и запись выполнялись с помощью циклического буфера. Я сделал это как это предложение. Этот код также не работает, поскольку QAudioOutput сталкивается с Underrun Error
, который согласно этой документации означает -
Аудиоданные не поступают на аудиоустройство с достаточно высокой скоростью
Я применил взлом для решения этой проблемы временно. В методе outputStateChanged
я проверяю, изменилось ли состояние вывода на IDLE
, и если оно есть, я снова вызываю метод start()
, указав общий буфер. Я не хочу использовать это как постоянное решение, потому что он чувствует себя действительно взломанным и потому, что я проглатываю ошибку, не расследуя ее причины.
Что мне делать, чтобы решить эту проблему?
Я также попытался решить эту проблему с помощью Phonon, но не смог, потому что у меня недостаточно знаний об этом модуле.