Russian Qt Forum

Qt => Работа с сетью => Тема начата: kip_one от Апрель 03, 2013, 22:22



Название: QAudioInput QTcpSocket
Отправлено: kip_one от Апрель 03, 2013, 22:22
Идея в том что на одном клиенте захватываем звук на другом воспроизводим. Захватить получается, потом передаю данные в QByteArray и на другой клиент через сервер. Проблема в том что с другой стороны звук не воспроизводит. Использую QTcpSocket,QTcpServer. Не знаю каким интервалом передавать QByteArray и вообще почему с другой стороны не шпилит :)
По желанию код могу предоставить.


Название: Re: QAudioInput QTcpSocket
Отправлено: Kurles от Апрель 04, 2013, 11:42
Идея в том что на одном клиенте захватываем звук на другом воспроизводим. Захватить получается, потом передаю данные в QByteArray и на другой клиент через сервер. Проблема в том что с другой стороны звук не воспроизводит. Использую QTcpSocket,QTcpServer. Не знаю каким интервалом передавать QByteArray и вообще почему с другой стороны не шпилит :)
Через QTcp* не получиться звук в реальном времени передавать, присмотрись к каким либо реализациям RTP (http://ru.wikipedia.org/wiki/RTP) протокола.


Название: Re: QAudioInput QTcpSocket
Отправлено: lex_newton от Апрель 04, 2013, 12:02
Возможно, стоит присмотреться к JACK Audio Connection Kit, он справляется с этой задачей на ура (http://ru.wikipedia.org/wiki/JACK_Audio_Connection_Kit). Если нужно именно через QTcpSocket (а протоколы реального времени,  типа RTP, не подходят) то нужно более детально рассматривать задачу. К примеру, тот же rdp перед передачей аудио сжимает его.


Название: Re: QAudioInput QTcpSocket
Отправлено: xokc от Апрель 04, 2013, 16:39
Через QTcp* не получиться звук в реальном времени передавать.
Да ладно вам, в условиях когда нам тут не оговорено, что за звук, да по какому каналу, да что тут под реальным временем понимается, говорить, что это невозможно реализовать поверх QTcp бессмысленно.
Если речь идёт о банальном аналоге скайпа в пределах одной локалки, то никаких проблем с этим нет. 8 кГц 8-битные отсчёты безо всякого труда пролезут через Ethernet и без RTP. И никакого сжатия не нужно.
Автор - а без сетки (из файла) звук воспроизводить получается?


Название: Re: QAudioInput QTcpSocket
Отправлено: kip_one от Апрель 04, 2013, 21:07
Из файла работает. Уже проверял. И да, я пытаюсь сделать аналог скайпа.


Название: Re: QAudioInput QTcpSocket
Отправлено: Kurles от Апрель 05, 2013, 07:45
Через QTcp* не получиться звук в реальном времени передавать.
Да ладно вам, в условиях когда нам тут не оговорено, что за звук, да по какому каналу, да что тут под реальным временем понимается, говорить, что это невозможно реализовать поверх QTcp бессмысленно.
Если речь идёт о банальном аналоге скайпа в пределах одной локалки, то никаких проблем с этим нет. 8 кГц 8-битные отсчёты безо всякого труда пролезут через Ethernet и без RTP. И никакого сжатия не нужно.
Через Ethernet по TCP а не по UPD? Хотя, кончено, учитывая величину задержки в пределах одной локалки, возможно и по TCP, а вот если чуть дальше - то пиши-пропало.


Название: Re: QAudioInput QTcpSocket
Отправлено: kip_one от Апрель 05, 2013, 19:41
Общение вне локалки, я так понял нужно смотреть в сторону RTP протокола