VoIP система через QAudioInput/Output



  • Нужно написать программу для голосовой связи через протокол UDP.

    Принцип следующий: после получения подтверждения на звонок, программа первого клиента начинает считывать звук с микрофона (через QAudioInput), и отправлять его через QUdpSocket второму клиенту, параллельно ожидая входящих пакетов. Второй клиент при поступлении датаграммы дописывает ее содержимое в конец буфера QBuffer, который используется для воспроизведения звука (QAudioOutput).

    Собственно, не могу понять, как все это проще реализовать. Возможно ли (в т.ч. и с помощью создания доп. потоков) автоматизировать добавление в буфер воспроизведения датаграммы и удаление из начала буфера данных, которые уже были обработаны QAudioOutput? Пока единтственное, что пришло мне в голову, это таймер на 100 мс, по которому останавливается QAudioOutput, вычисляется количество байт, которые уже были воспроизведены (через QAudioOutput.processedUSecs()), они удаляются через QBuffer.buffer().remove(0,n), и снова запускается воспроизведение. Но это как-то не работает. Подскажите, пожалуйста наиболее правильное решение. Заранее спасибо.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.