2012-06-07 189 views
0

我想從我的Symbian設備(諾基亞N8)將麥克風輸入流傳輸到運行在我的Windows PC上的PureData應用程序。兩者都通過WiFi連接。從Qt流媒體音頻到PureData

連接成功,但讀入數據失敗。當我使用TCP的連接立即與實用小

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

使用UDP下降,我得到很多

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

我已在PD的採樣速率相匹配的一個從手機來的,但是PD一直告訴我音頻格式是未知的。也許它與樣本大小或字節順序有關?

PS:我使用的PD側奧拉夫·馬特斯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); 

回答

0

[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似乎是當前未使用的,但你必須填寫休息,根據您所發送(檢查this header-file獲取更多信息)數據