2010-11-17 131 views
8

因此,任何值得他們在android開發社區中使用salt的人都知道與Android中低延遲音頻相關的問題3434。對於那些不這樣做的人,你可以在這裏接受教育。 http://code.google.com/p/android/issues/detail?id=3434Android音頻延遲變通方案

我正在爲我的個人項目尋找任何形式的臨時解決方法。我聽說過通過滾動你自己的android版本和修改NDK來暴露私有接口到NDK。

我只需要一種方法來訪問已經與標準2.2版本打包在一起的低級alsa驅動程序。我希望能夠將PCM直接發送到設備上的音頻硬件。我不在乎所產生的應用程序不會在市場上分發,並且可能不會與我的任何其他設備一起運行。

任何人有任何有用的想法?

-Griff

編輯:我要提,我知道AudioTrack提供了這個功能,但我想更低的延遲 - AudioTrack圍坐300ms以內,我想某​​處大約20-30毫秒。

回答

7

Griff,就是這個問題,NDK不會改善已知的延遲問題(甚至有文件記載)。本地代碼中的硬件抽象層現在增加了延遲,所以它不僅僅是訪問低級驅動程序(順便說一句,你不應該依賴alsa驅動程序)。

+1

Gah。我當時希望情況並非如此。實際上,我有機會在GDC 2011上與Android人員交談,顯然這不完全是硬件問題,而是一個不容易解決的架構問題。 – Griffin 2011-04-07 04:05:59

+0

查看@Ian Ni-Lewis的評論 - 情況正在好轉4.1 – 2012-09-13 18:01:51

+0

我預測,沒有任何架構解決方案,因爲Google對這些智能手機的數據挖掘設備的實際性能毫不關心。 – 2015-04-22 13:20:04

1

Android: sound API (deterministic, low latency)涵蓋了很好的折衷。 TL; DR:NDK給你帶來很小的好處,因爲這些線程可以以更高的優先級運行,但是這種好處在Jellybean之前是沒有意義的,因爲整個音頻系統都是針對Java進行優化的。

運行4.1的Galaxy Nexus可以獲得相當接近30ms的輸出延遲。

+0

太棒了,所以一個特定的硬件設備將工作,但只是稍微好一點;這正成爲一場零和遊戲。 – 2015-04-22 13:21:51