基本想法是創建一個應用程序,該應用程序可以記錄來自一臺設備的音頻,並通過套接字將其通過Wlan發送到將播放該設備的其他設備。簡而言之,一個Lan語音聊天程序。Android:使用AudioTrack和套接字手動流式傳輸音頻
我使用AudioRecord對象從麥克風錄製實時音頻,然後將錄製的數據讀入字節數組,然後將字節數組寫入TCP套接字。接收設備然後從套接字讀取該字節數組並將其寫入到AudioTrack對象的緩衝區中。
其像
音頻記錄 - >字節數組 - >插座---> LAN --->插座 - >字節數組 - > AudioTrack
的進程正在使用的同時反覆循環。
雖然音頻在播放其幀之間的滯後。即當我說你好接收者聽到他 - ll - O。雖然音頻已完成,但緩衝區塊之間存在滯後。
據我知道的滯後是由於在局域網傳輸
耽誤我怎樣改進呢? 我應該使用什麼方法,以便在商業在線聊天應用程序(如skype和gtalk)中平滑使用?
但是不會緩衝開始減少,因爲音頻將以比它到達的速度更大的速率進行供給 – Allahjane
隨着緩衝區顯示較晚,緩衝區將會減少。但是,也應該填補作爲晚期終於到達。需要考慮的一件事就是將緩衝區提交到網絡的時間與錄製音頻的採樣率對齊。另一件需要考慮的事情是,你可能無法獲得緩衝區。因此,在播放音頻到接收器之前的延遲應該足夠慷慨,以便有時間處理。 – Ehz