我想實現和音頻處理器和android,其中輸入將產生正弦波,然後一些效果將impemented(回聲,失真等),所以我應該如何設計我的關於線程和緩存應用。如何在android上實現實時音頻處理?
請幫助,如果有應遵循
我想實現和音頻處理器和android,其中輸入將產生正弦波,然後一些效果將impemented(回聲,失真等),所以我應該如何設計我的關於線程和緩存應用。如何在android上實現實時音頻處理?
請幫助,如果有應遵循
建議任何架構:
使用流模式的AudioTrack對象(AudioTrack.MODE_STREAM
),並使用一個循環不斷呼叫阻塞AudioTrack write
保持它提供數據來自專門的非UI線程。該線程從其他線程準備數據的循環緩衝區讀取數據。
請注意,即使系統限制了最小內部音頻緩衝區大小(請務必檢查AudioTrack對象結構的結果),您可以將數據寫入較小的塊中,這可以減少平均延遲。
避免做浮點運算,特別是計算三角函數(例如正弦)和浮點/整數轉換,在實時;儘可能多地準備波形,並將其存儲在循環表中;保持你的PCM幅度爲浮點形式,直到最後一步。
的Gstreamer已經被移植到Android。這是一個處理多種格式和實時播放,轉碼和創建效果的框架。
人們可以輕鬆地構建自己的過濾器,如果你不能從現有的找到正確的參數化。