AudioFlinger (59): RecordThread: desbordamiento del búfer cuando la actividad está pausada?

Tengo una aplicación que consiste en un servicio y una actividad que puede ser iniciada por el servicio para ciertos eventos. El servicio puede crear y usar las clases AudioRecord y AudioTrack – en qué momento se muestra la Actividad de la aplicación. El problema es si la actividad está en pausa (es decir, onPause () se llama) Comienzo a obtener el RecordThread: errores de desbordamiento de búfer?

Mi conjetura es el AudioRecorder se está ejecutando en el hilo principal. Y, a pesar de que fue creado por el servicio, cuando la actividad detiene la lectura se detiene así el buffer desborda? ¿Debe la lectura de AudioRecorder ser hecha en un hilo de rosca separado aunque esté funcionando en el servicio?

Cualquier ayuda sería muy apreciada, gracias.

Los desbordamientos del búfer RecordThread ocurren cuando no está tirando los datos del objeto AudioRecord lo suficientemente rápido.

Definitivamente debe tener el bucle que extrae datos del objeto AudioRecord en un hilo de sperate y debe detener ese hilo si su actividad se detiene (a menos que quiera grabar en segundo plano).

Aquí hay algunos ejemplos de implementaciones de trabajo:

  • Ejemplo de y-dev
  • Ejemplo de StackOverflow

Aunque es una vieja pregunta, desearía conocer esta respuesta al comenzar a trabajar con Servicios, así que la registraré para futuras referencias por otros:

Un punto a menudo pasado por alto, pero muy importante con respecto a los servicios es el hecho de que no generan automáticamente sus propios hilos, pero se ejecuta en el hilo de la GUI principal. Esto es muy contra-intuitivo cuando se considera la palabra "servicio", pero sin embargo cierto. (Ver la primera sección de 'Atención' en http://developer.android.com/guide/topics/fundamentals/services.html ).

También puede considerar la posibilidad de extender la clase IntentService en lugar de la clase de servicio que "… creará [s] un subproceso de trabajo predeterminado que ejecuta todas las intenciones … separado del subproceso principal de la aplicación." (http://developer.android.com/guide/topics/fundamentals/services.html)

¡Espero que alguien encuentre esto útil!

  • ¿Biblioteca de sonido nativa en Android que puede cambiar de tono?
  • PhoneGap plugin de Android para la grabación de audio de mayor calidad?
  • ¿Cómo grabo audio usando Android 1.5?
  • ¿Cómo obtener sólo frecuencia de audio y decibles del proyecto FFTBasedSpectrumAnalyzer?
  • Reproductor de medios Android Reiniciar audio después de llamar a Stop
  • Cordova Plugin para mostrar información y controles de audio en iOS y Android Lockscreen
  • Android 2.2 MediaPlayer está funcionando bien con una URL de SHOUTcast, pero no con la otra
  • Api de audio de baja latencia para Android?
  • Transmisión de audio con Android MediaPlayer
  • ¿Cómo reproducir dos pistas de audio y video separadas en un solo reproductor sin crear ningún archivo de salida en android?
  • Fregadero de Android 5.0 Bluetooth A2DP
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.