¿Cuáles son mis opciones para reproducir audio simultáneo en un dispositivo Android con la menor cantidad de latencia? ¿Voy a obtener algo medio decente del SDK enlatado, o es demasiado pedir? La documentación afirma que la clase SoundPool es capaz de reproducir múltiples sonidos simultáneamente con un rendimiento relativamente bueno, pero después de ejecutar algunas pruebas en el emulador y en un dispositivo físico parece bastante débil. ¿Hay algún truco o tengo que ir a una API de nivel mucho más bajo para este tipo de cosas? Intenté usar un único grupo de sonido con múltiples muestras cargadas, y probé varios grupos de sonido, cada uno de los cuales administraba una sola muestra. Estoy precargando todo, por lo que cuando intento reproducir no tengo ningún código adicional que se ejecute aparte de la llamada a SoundPool.play().Api de audio de baja latencia para Android?
Respuesta
No tengo experiencia en Android, pero he escrito cosas similares para Windows Mobile. Los dispositivos en sí son ciertamente capaces de mezclar múltiples sonidos en tiempo real con una baja latencia (menos de 25 ms), aunque por "múltiple" me refiero a 4 o 5 (y no a 30 a 40). Sin embargo, solo pude lograr esto satisfactoriamente al escribir mi propio código que mezclaba internamente y accedía a la API de reproducción de audio de bajo nivel solo para reproducir la salida final mixta. Las formas de tocar sonidos de alto nivel en .Net Compact Framework son teóricamente capaces de polifonía, pero en la práctica funcionan de forma horrible (muchos problemas técnicos, tartamudeo y distorsión).
Sospecho que el SDK de audio de Android tiene el mismo problema, por lo que puede que tenga que escribir el suyo.
Varias personas están interesadas en audio de baja latencia en Andriod. Estos son los temas que sigo en el tema: temas relacionados
- Un wave de audio que abarca desde la conferencia I/O de este año.
- Un Android issue sobre soporte para audio de baja latencia en el NDK.
Este post sugiere que los dispositivos Android tienen controladores de ALSA (capaces de audio de baja latencia) - pero parece que la funcionalidad de baja latencia no está expuesto a aplicaciones a través de la NDK.
No tengo experiencia directa con Android, pero por lo que he leído, la baja latencia (menos de < 10ms o menos) todavía no es una realidad. Por favor, publique cualquier experiencia que indique lo contrario.
Android 2.3 ahora es compatible con el acceso nativo a las API de audio (a través de OpenSL) para aplicaciones de baja latencia.
Sin embargo, no todos los dispositivos de hardware tendrán un perfil de características de audio de baja latencia. Por lo tanto, las aplicaciones que requieren dispositivos de filtro shouuld de audio de baja latencia no apoyar en el mercado Android especificando lo siguiente en el manifiesto:
<uses-feature android:name="android.hardware.audio.low_latency"/>
Tengo un teléfono con 2.2 ahora y una CPU de 1Ghz, y he visto un montón de aplicaciones hacer un trabajo medio decente.Después de investigar un poco, estoy bastante seguro de que están decodificando datos PCM de archivos de audio y escribiéndolos directamente en un AudioTrack, y eso es bastante baja latencia para un secuenciador de audio básico/player – Rich
@Rich: lo he intentado con 2.2 y un teléfono de 1GHz y el tamaño mínimo de buffer que Audiotrack me da es 1400 cuando está en 8kHz, Mono. Eso es 175 ms. Para mi funcionalidad deseada, eso es lento. – AudioDroid
Es un truco de marketing: hacer que alguien piense que está "al corriente con la manzana". Debería haber sido llamado 'latencia media'. No creo que haya demasiados casos de uso que puedan beneficiarse de una latencia de 50 ms. Es demasiado lento para una respuesta de audio adecuada y un requisito innecesario para cualquier otra cosa. –
por favor ver mi respuesta a Android: sound API (deterministic, low latency).
La latencia de un dispositivo Android depende menos de la API y más en el hardware y los controladores para ese dispositivo en particular. La habilitación de la reproducción de baja latencia consume más energía y aumenta las posibilidades de problemas técnicos de audio, por lo que muchos fabricantes de equipos originales ampliarán sus almacenamientos intermedios de reproducción de forma intencionada.
- 1. Cómo utilizar audio androide con baja latencia
- 2. Soluciones de latencia de audio de Android
- 3. Programación de baja latencia
- 4. ¿La mejor API de audio de baja latencia para un juego de música iOS? OpenAL, Cocoas2d Denshion, PhoneGap
- 5. ¿Cómo se mide la latencia en entornos de baja latencia?
- 6. Ajuste de colecciones de basura para baja latencia
- 7. de baja latencia de valor-clave Tienda para SSD
- 8. Captura de botón de baja latencia, haga clic en
- 9. java caché distribuida para baja latencia, alta disponibilidad
- 10. Mensajería de baja latencia de WebSphere MQ: ¿Tiene una API JMS (o JMS)?
- 11. Sistemas de negociación de baja latencia usando C++ en Windows?
- 12. ¿Biblioteca de red Java liviana y de baja latencia?
- 13. API de audio de bajo nivel para Android
- 14. ¿La mejor API para audio de bajo nivel en Windows?
- 15. ¿Cuál es la latencia de audio de ida y vuelta más baja que se puede lograr con el iPhone 4?
- 16. Transmitir video en vivo al navegador (con baja latencia)
- 17. Alto rendimiento latencia baja C++ cadena personalizada clase
- 18. ¿Cuál es su lista de comprobación de desarrollo para la aplicación Java de baja latencia?
- 19. Java - archivo de audio wav de baja resolución
- 20. base de datos/NoSQL - forma latencia más baja para recuperar los datos siguientes
- 21. ¿El mejor sistema operativo para implementar una aplicación Java de baja latencia?
- 22. ¿Recibir arreglos de bytes de audio con HTML5 Audio API?
- 23. Integral html5 Audio API
- 24. Web Audio API WaveShaperNode
- 25. Java audio converter api
- 26. ¿Por qué la DNS de DNS pública (8.8.8.8) tiene una latencia de ping tan baja?
- 27. android, filtros de audio
- 28. ¿Hay una biblioteca que abstraiga Web Audio API y Mozilla Audio Data API para leer audio en bruto (MP3, ogg)
- 29. Android - método de reemplazo de alta versión de la API y el apoyo a la API versión más baja
- 30. Edición de audio en Android
Estoy dispuesto a probar lo que sugirió aquí para la grabación/reproducción de audio de baja latencia. Pero creo que necesito más dirección que la respuesta actual. ¿Podría describir más lo que hizo para WinPhone? –