¿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):
- No se puede acceder a AudioRecorder
- AudioRecord: ¿Desbordamiento del búfer?
- Escritura de datos grabados PCM en un archivo .wav (java android)
- Android: valor recomendado de bufferSizeInBytes en AudioRecord
- AudioRecord de Android vs MediaRecorder para la grabación de audio
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
- AudioRecord - archivo PCM de escritura
- Android AudioRecord ejemplo
- AudioRecord: registros de "Overrun user" - ¿qué significan?
- Grabar con AudioRecord en Android acelera el audio?
- Grabación de audio en vivo y reproducción en Android y manejo de subprocesos y devolución de llamada
- Grabación .Wav con Android AudioRecorder
- Android AudioRecord clase - proceso de mic audio en vivo rápidamente, configurar la función de devolución de llamada
- Android detecta AudioRecord / maneras de grabar audio sin bloquear otras aplicaciones
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.
- ¿Cómo instalar una piel (de Samsung) para el emulador androide con "ADT 21.0.1" en eclipse?
- Todavía la confusión sobre el contexto