2012-10-28 80 views

回答

3

建議任何架構:

使用流模式的AudioTrack對象(AudioTrack.MODE_STREAM),並使用一個循環不斷呼叫阻塞AudioTrack write保持它提供數據來自專門的非UI線程。該線程從其他線程準備數據的循環緩衝區讀取數據。

請注意,即使系統限制了最小內部音頻緩衝區大小(請務必檢查AudioTrack對象結構的結果),您可以將數據寫入較小的塊中,這可以減少平均延遲。

避免做浮點運算,特別是計算三角函數(例如正弦)和浮點/整數轉換,在實時;儘可能多地準備波形,並將其存儲在循環表中;保持你的PCM幅度爲浮點形式,直到最後一步。

0

的Gstreamer已經被移植到Android。這是一個處理多種格式和實時播放,轉碼和創建效果的框架。

人們可以輕鬆地構建自己的過濾器,如果你不能從現有的找到正確的參數化。