Потоковое аудио из Qt в PureData

Я пытаюсь передать вход микрофона с моего устройства Symbian (Nokia N8) в приложение PureData, работающее на моем ПК с Windows. Оба подключены через WiFi.

Соединение установлено успешно, но прочитать входящие данные не удается. Когда я использую TCP, соединение сразу обрывается с небольшой полезной

netreceive~: recv data: Unknown error (10014).

С UDP я получаю много

netreceive~: recv data: Message too long (10040).

Я установил частоту дискретизации в PD, чтобы она соответствовала частоте, поступающей с телефона, но PD продолжает сообщать мне, что формат аудио неизвестен. Может быть, это связано с размером выборки или порядком байтов?

P.S.: Я использую объект netreceive~ Олафа Маттеса на стороне PD, и код Qt выглядит так:

audio_out_socket = new QTcpSocket(this);
audio_out_socket->connectToHost(pdclient_addr, 8030);
QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
QAudioFormat format = info.preferredFormat();
audio_in = new QAudioInput(info, format, this);
audio_in->start(audio_out_socket);

person sebastianmm    schedule 07.06.2012    source источник


Ответы (1)


[netreceive~] ожидает "заголовок", который содержит информацию о данных до поступления фактических данных.

из netsend~.h:

typedef struct _tag {      /* size (bytes) */
     char version;         /*    1         */
     char format;          /*    1         */
     long count;           /*    4         */
     char channels;        /*    1         */
     long framesize;       /*    4         */
     char extension[5];    /*    5         */
} t_tag;                   /*--------------*/
                           /*   16         */

extension кажется, в настоящее время не используется, но вы должны заполнить остальные в соответствии с данными, которые вы отправляете (проверьте этот заголовочный файл для получения дополнительной информации)

person umläute    schedule 09.01.2013