2016-01-20 49 views
-6

我想連接微控制器PC,併發送波形文件形成微到PC。然後我想要實時播放這樣的波形流,並同時將它保存在PC中。利用從微控制器播放實時音頻在PC n音訊

我可以設置與所述微和PC接收的數據陣列之間的USB連接。

我想在播放過程中播放該數據陣列,併發送實時下一個數組無間隙。

我使用C#在PC上編程。

+0

歡迎來到Stack Overflow。你的問題似乎很廣泛。請閱讀[常見問題],[問]和[幫助]作爲開始.. –

回答

1

你需要做的是緩衝。由於您使用的是USB並且傳輸不能實時進行,因此您可以「提前」開始傳輸幾秒鐘。

在PC端,你可以再與負責enqeueuing在Queue收到陣列的一個線程保存接收到的數據流。

在隊列中有足夠的數據陣列以允許預緩衝之後,在一個單獨的線程上,您希望開始從隊列中檢索(出隊)數據,然後該線程負責「實時」回放。

您在一開始就使用一些額外的緩存可以讓你補償由其他操作系統任務峯值需求數據傳輸的臨時滯後。

如果您是轉移你的數據包usign URB的理念,儘量讓你的URB的優化。通常,4K的URB對於優化流數據傳輸是一個很好的選擇,但如果您想在啓動時減少延遲,則可以減少這些URS的大小,但會以犧牲USB總線利用率不理想爲代價。