Domanda

Quindi, nessuno che si rispetti nella comunità di sviluppo Android sa di emissione 3434 relativo alla bassa latenza audio in Android. Per coloro che non lo fanno, si può educare se stessi qui. http://code.google.com/p/android/issues/detail ? id = 3434

sto cercando qualsiasi tipo di soluzione temporanea per il mio progetto personale. Ho sentito parlare di esporre interfacce private al NDK facendo rotolare la propria build di Android e modificando il NDK.

Tutto quello che serve è un modo per accedere ai driver a basso livello di ALSA che sono già confezionati con lo standard 2.2 build. Mi piacerebbe avere la possibilità di inviare PCM direttamente con l'hardware audio sul mio dispositivo. Non mi interessa che l'applicazione risultante non sarà distribuibili sul mercato, e probabilmente non verrà eseguito con qualsiasi altro dispositivo di miniera.

Qualcuno ha tutte le idee utili?

-Griff

EDIT:. Devo dire, lo so AudioTrack fornisce questa funzionalità, ma mi piacerebbe molto più bassa latenza - AudioTrack si siede intorno 300ms, mi piacerebbe qualche parte intorno a 20-30 ms

È stato utile?

Soluzione

Griff, questo è solo il problema, NDK non wil migliorare il problema di latenza noto (che è anche documentato). Il livello di astrazione hardware in codice nativo è attualmente aggiungendo alla latenza, in modo che non si tratta solo di accesso ai driver di basso livello (btw non si dovrebbe fare affidamento su alsa driver di essere lì in ogni caso).

Altri suggerimenti

Android: suono API (deterministica, bassa latenza) copre i compromessi abbastanza bene. TL; DR:. NDK ti dà un vantaggio minore, perché i thread possono funzionare a priorità più alta, ma questo vantaggio è privo di significato pre-Jellybean perché l'intero sistema audio è ottimizzato per Java

Il Galaxy Nexus in esecuzione 4.1 può ottenere abbastanza vicino a 30ms di latenza di uscita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top