Question

Alors, quelqu'un leur sel dans la valeur de la communauté du développement Android sait question 3434 relative à faible latence audio dans Android. Pour ceux qui ne le font pas, vous pouvez vous renseigner ici. http://code.google.com/p/android/issues/detail ? id = 3434

Je cherche toute sorte de solution temporaire pour mon projet personnel. Je l'ai entendu parler d'exposer les interfaces privées au NDK en roulant votre propre version d'Android et de modifier le NDK.

Tout ce que je besoin est un moyen d'accéder aux pilotes ALSA bas niveau qui sont déjà fournis avec la norme 2.2 build. Je voudrais avoir la possibilité d'envoyer PCM directement au matériel audio sur mon appareil. Je ne me soucie pas que l'application résultant ne sera pas distribuable sur le marché, et ne fonctionnera probablement avec un autre appareil que le mien.

Quelqu'un a des idées utiles?

-Griff

EDIT:. Je dois mentionner, je sais AudioTrack fournit cette fonctionnalité, mais je voudrais beaucoup moins de latence - AudioTrack est assis autour de 300ms, je voudrais quelque part autour de 20-30 ms

Était-ce utile?

La solution

Griff, c'est juste le problème, NDK wil ne pas améliorer la question de la latence connue (qui est encore documenté). La couche d'abstraction matérielle dans le code natif ajoute actuellement à la latence, il est donc pas seulement l'accès aux pilotes de bas niveau (BTW vous ne devriez pas compter sur les pilotes ALSA être là de toute façon).

Autres conseils

Android: API sonore (déterministe, faible latence) couvre les compromis assez bien. TL; DR:. NDK vous donne un léger avantage parce que les fils peuvent fonctionner à plus haute priorité, mais cet avantage n'a pas de sens avant Jellybean parce que le système audio complet est réglé pour Java

Le Galaxy Nexus en cours d'exécution 4.1 peut obtenir assez proche de 30ms de latence de sortie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top