Android: valor recomendado de bufferSizeInBytes en AudioRecord

Estoy utilizando la clase AudioRecord que el constructor es:

AudioRecord( int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes) 

En todos (o en la mayoría) de los tutoriales y ejemplos que encuentro en Internet es recomendable establecer bufferSizeInBytes como sigue:

 bufferSizeInBytes= getMinBufferSize ( int sampleRateInHz, int channelConfig, int audioFormat) 

¿Podría alguien decirme la razón?

Necesito hacer la correlación entre los valores que estoy grabando y un patrón. Este patrón es más largo que MinBufferSize. Por lo tanto, debería simplemente aumentar bufferSizeInBytes al valor que prefiero, o es que va a empeorar el rendimiento de AudioRecord.

¿Podría alguien decirme la razón?

Porque lo que devuelve getMinBufferSize para una configuración dada es el tamaño de búfer más pequeño que se le permitirá especificar al crear AudioRecord .

¿Por qué desea el tamaño de memoria intermedia más pequeño posible? Para obtener la menor latencia posible.
Imagine que está haciendo algo como un medidor SPL; No querrás que haya un retraso de un segundo antes de que tu interfaz de usuario reaccione a un cambio en la presión del sonido.

El tamaño del búfer no determina la cantidad de datos que puede solicitar de read() . Está bien solicitar más datos que el tamaño del AudioRecord's ; read() simplemente no volverá hasta que se hayan leído todos los datos que ha solicitado.

  • Android FFT de audio para mostrar la frecuencia fundamental
  • Codificación de audio AAC utilizando AudioRecord y MediaCodec en Android
  • Android AudioRecord clase - proceso de mic audio en vivo rápidamente, configurar la función de devolución de llamada
  • Errores al grabar sonido en Android
  • AudioRecord y AudioTrack latency
  • La instancia de audiorecord de Android falla
  • Codificador AAC de Android MediaCodec
  • AudioRecord: inicio () estado -38
  • Android AudioRecord leer siempre devuelve -3 (ERROR_INVALID_OPERATION)
  • Obtener ultrasonido de android usando frecuencia
  • PCM -> AAC (Encoder) -> PCM (Decodificador) en tiempo real con optimización correcta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.