¿Cómo ajustar la frecuencia de muestreo de audio superior a 44.1kHz en la plataforma linux / android?

Me di cuenta de que android.media.AudioRecord no funciona cuando se utiliza sampleRateInHz equivocado

REPRODUCIR

También puede reproducir fácilmente ese problema utilizando pcmrecorder en Samsung Nexus S (de Google):

Https://market.android.com/details?id=com.kohei.android.pcmrecorder

Http://ko-yasui.com/home/pcmrecorder/

Por lo tanto, no puede grabar a 48Khz mientras que el chip de hardware de audio soporta hasta 96KHz:

Http://www.wolfsonmicro.com/products/audio_hubs/WM8994/

¿Se trata de un error de dispositivo / firmware o una limitación conocida?

Tenga en cuenta que la plataforma Android sólo aseguran unos 44100Hz (ni siquiera 24KHz)

Http://developer.android.com/reference/android/media/AudioRecord.html

sampleRateInHz : la tasa de muestreo expresada en Hertz. 44100Hz es actualmente la única tasa que garantiza que funcione en todos los dispositivos, pero otras velocidades como 22050, 16000 y 11025 pueden funcionar en algunos dispositivos.

CÓDIGO FUENTE

Encontrará un código de ejemplo para reproducir esos problemas en:

Https://github.com/rzr/rzr-android-test/blob/api-android-media/src/fr/online/rzr/test/

Pistas

¿Cómo superar esta limitación?

  • Se podría utilizar cualquier otro API? Opensl, alsa, openal? y cómo ?

  • Podría alsa controlador ser reconfigurado desde el lado del usuario para poder muestrear por encima de 44100Hz? (.asoundrc)

  • ¿Es posible hacer una tal cosa sin reflashing / enraizamiento / reinicio del dispositivo

  • ¿Otra manera de solucionar esto? Upsampling (interpolación) de manera eficiente, utilizando código nativo?

MÁS

Http://www.anddev.org/multimedia-problems-f28/how-to-set-audio-sampling-rate-higher-than-44-1hz-nexuss-t54722.html

Http://es.androidwiki.com/wiki/Nexus_S

La frecuencia de muestreo máxima admitida para el nexo s es de 44,1 kHz, el hardware de audio está lanzando un error cuando la plataforma de Android solicita establecer la frecuencia de muestreo en 48 o superior. Para responder a su pregunta, el límite para la frecuencia de muestreo es determinado por el hardware específico en el que está ejecutando el programa. He probado su código en mi nexus s y obtuvo el mismo resultado que usted, pero si lo intenté en mi antiguo mytouch 3g la tasa de muestreo máximo probablemente sería 22,05 kHz. Básicamente, es necesario comprobar cuál es el rango soportado de las tasas de muestreo cuando se está inicializando la configuración de audio.

  • Android FFT de audio para mostrar la frecuencia fundamental
  • ¿El mejor método para roscar en Android?
  • ¿Por qué recibiría NPE en este estado?
  • Android: Necesidad de registrar la entrada de micrófono
  • Creación de un archivo WAV a partir de datos PCM sin procesar utilizando el SDK de Android
  • Android AudioRecord y MediaRecorder
  • AudioRecord registra sonido intermitente en Android L Vista previa del desarrollador
  • Necesita un ejemplo sencillo para la grabación de audio
  • Cambiar registro de audio de Android Fuente de entrada predeterminada
  • Cancelación de ruido activo de Android
  • Cómo ajustar la sensibilidad del micrófono mientras graba audio en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.