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