0

Symbian デバイス (Nokia N8) から Windows PC で実行されている PureData アプリケーションにマイク入力をストリーミングしようとしています。どちらもWiFi経由で接続されています。

接続は成功しますが、着信データの読み取りは失敗します。TCP を使用すると、接続がすぐに切断され、少し役に立ちます

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

UDP を使用すると、多くの

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

電話からのサンプルレートと一致するように PD のサンプルレートを設定しましたが、PD はオーディオ形式が不明であると繰り返し言います。多分それはサンプルサイズ、またはバイトオーダーと関係がありますか?

PS: PD 側で Olaf Matthes の netreceive~ オブジェクトを使用しています。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);
4

1 に答える 1

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現在は使用されていないようですが、送信するデータに応じて残りを記入する必要があります (詳細については、このヘッダー ファイルを確認してください)。

于 2013-01-09T09:16:21.983 に答える