我開始着手一個項目,該項目通過以太網傳輸G.711音頻,用C(而不是C++)編寫,並在Fedora 15上運行。而不是做聰明的事情並使用RTP,我使用UDP傳輸音頻數據。 爲了稍微克服我已經決定在每個數據包的身體,看起來使用結構的數據包重新排序的問題有點像這樣:音頻數據包類型
struct payload {
char cc;
char audio_data[160];
};
變量「CC」是運行連續性計數器從0到15,當數據包到達接收者時,根據cc的值將它放入這些結構的數組中。音頻輸出例程然後遍歷該數組並播放數據。
我的問題是,這是打包音頻的最佳方式嗎?輸出數組最終會變成二維的,肯定會通過每個成員慢讀並將其寫入輸出?有沒有一種方法可以定義160字節寬的類型,我只能寫入另一端的音頻接口?
任何建議,將不勝感激,正如有用資源的鏈接上ALSA(這似乎是非常罕見的!)
喬希
我不確定我是否理解你的問題。你試圖避免/優化的是什麼? –