Quali sono le mie opzioni per riprodurre l'audio simultaneo su un dispositivo Android con la minore quantità di latenza? Prenderò qualcosa di decente dall'SDK in scatola, o è chiedere troppo? La documentazione afferma che la classe SoundPool è in grado di riprodurre più suoni contemporaneamente con prestazioni relativamente buone, ma dopo aver eseguito alcuni test nell'emulatore e su un dispositivo fisico sembra piuttosto debole. C'è forse un trucco, o devo andare ad un livello molto più basso per questo genere di cose? Ho provato a utilizzare un singolo pool audio con più campioni caricati e ho provato più pool di suoni ciascuno gestendo un singolo campione. Sto eseguendo il precaricamento di tutto, in modo che quando tento di riprodurre non venga eseguito alcun codice aggiuntivo oltre alla chiamata a SoundPool.play().Api audio a bassa latenza per Android?
risposta
Non ho esperienza Android, ma ho scritto cose simili per Windows Mobile. I dispositivi stessi sono certamente in grado di mixare più suoni in tempo reale con una bassa latenza (meno di 25 ms), sebbene con "multiple" intendo forse 4 o 5 (e non da 30 a 40). Tuttavia, sono stato in grado di ottenere questo risultato soddisfacentemente solo scrivendo il mio codice che ha effettuato il missaggio internamente e ho avuto accesso all'API di riproduzione audio di basso livello solo per riprodurre l'output misto finale. I modi più alti di suonare i suoni nel .Net Compact Framework sono teoricamente capaci di polifonia, ma in pratica funzionano in modo orribile (un sacco di problemi, balbuzie e distorsioni).
Sospetto che l'SDK audio Android abbia lo stesso problema, quindi potrebbe essere necessario scriverne uno proprio.
Un numero di persone è interessato all'audio a bassa latenza su Andriod. Qui ci sono i fili che sto seguendo sul tema: argomenti correlati
- Un wave copertura audio da conferenza I/O di quest'anno.
- Un Android issue sul supporto per l'audio a bassa latenza nell'NDK.
Questo post suggerisce che i dispositivi Android hanno driver ALSA (capaci di audio a bassa latenza) - ma sembra che la funzionalità a bassa latenza non è esposta alle applicazioni tramite il NDK.
Non ho esperienza diretta con Android, ma da quello che ho letto, bassa latenza (meno di < 10 ms circa) non è ancora una realtà. Si prega di inviare qualsiasi esperienza in contrario!
Android 2.3 ora supporta l'accesso nativo alle API audio (tramite OpenSL) per applicazioni a bassa latenza.
Tuttavia, non tutti i dispositivi hardware avranno un profilo di funzionalità audio a bassa latenza. Così le applicazioni che richiedono dispositivi di filtraggio shouuld audio a bassa latenza non lo sostengono nel mercato Android specificando quanto segue nel manifesto:
<uses-feature android:name="android.hardware.audio.low_latency"/>
Ho un telefono con 2,2 ora e una CPU da 1 GHz, e ho visto un sacco di app fare un lavoro decente.Dopo aver fatto qualche ricerca, sono abbastanza sicuro che stanno decodificando i dati PCM da file audio e scrivendoli direttamente su AudioTrack, e che è abbastanza bassa latenza per un sequencer/player audio base – Rich
@Rich: ho provato con 2.2 e un telefono da 1 GHz e la dimensione minima del buffer che Audiotrack mi dà sono 1400 quando in 8kHz, Mono. Quello è 175 ms. Per la mia funzionalità desiderata, è quella di rallentare. – AudioDroid
È un espediente di marketing: far credere a qualcuno che stia al passo con la mela. Avrebbe dovuto essere chiamato "latenza media". Non penso che ci siano troppi casi d'uso che possono beneficiare della latenza di 50 ms. È troppo lento per un respsonse audio adeguato e un requisito non necessario per qualsiasi altra cosa. –
Si prega di vedere la mia risposta a Android: sound API (deterministic, low latency).
La latenza di un dispositivo Android dipende meno dall'API e più dall'hardware e dai driver per quel particolare dispositivo. L'attivazione della riproduzione a bassa latenza consuma più energia e aumenta le probabilità di problemi audio, quindi molti OEM amplieranno intenzionalmente i buffer di riproduzione.
- 1. Come utilizzare l'audio Android con bassa latenza
- 2. Migliore API audio a bassa latenza per un gioco musicale iOS? OpenAL, Cocoas2d Denshion, PhoneGap
- 3. Come misurare la latenza negli ambienti a bassa latenza?
- 4. Tuning garbage collection per bassa latenza
- 5. Acquisizione bassa latenza del clic del pulsante
- 6. alto rendimento vs bassa latenza in HDFS
- 7. Uso di AVAudioEngine per programmare i suoni per il metronomo a bassa latenza
- 8. Libreria di rete Java leggera e a bassa latenza?
- 9. Stream video live per browser (con bassa latenza)
- 10. java cache distribuita per bassa latenza, alta disponibilità
- 11. API audio di basso livello per Android
- 12. Qual è la latenza audio di andata e ritorno più bassa raggiungibile con iPhone 4?
- 13. Rilevazione o approssimazione della latenza Bluetooth su Android (riproduzione audio)
- 14. Come si determina la latenza audio (AudioTrack) su Android?
- 15. API cross platform audio
- 16. Come si elabora un grafico costantemente aggiornato, con bassa latenza?
- 17. Migliore API per audio di basso livello in Windows?
- 18. Impostazione playbackRate su elemento audio collegato a web audio api
- 19. Previsioni di incremento graduale negli ambienti di produzione a bassa latenza?
- 20. C++ Bassa latenza Design: Funzione Invio v/s CRTP per implementazione di fabbrica
- 21. API audio html5 completa
- 22. API Web Audio, eventi?
- 23. Java audio converter api
- 24. Emulatore Android sembra registrare audio a 96khz
- 25. API Media Phonegap - Registrazione e riproduzione audio - Android
- 26. volume audio webRTC Android
- 27. Perché la latenza del ping di Google DNS pubblico (8.8.8.8) è così bassa?
- 28. Facebook graph API: quota audio
- 29. Telecamera da soffitto più bassa per approccio da CPU a GPU su Android
- 30. La latenza di Firebase è sufficientemente bassa da essere utilizzata per MMOG in tempo reale anziché per socket?
Sono disposto a provare ciò che hai suggerito qui per registrazione/riproduzione audio a bassa latenza. Ma penso di aver bisogno di più indicazioni rispetto alla risposta attuale. Potresti descrivere di più quello che hai fatto per WinPhone? –