Estoy tratando de tomar pequeñas grabaciones para encontrar el nivel de presión sonora de un servicio, pero Android no me da acceso al hardware. Consigo los siguientes errores en Logcat:No puedo acceder a AudioRecorder
El error proviene de la siguiente código:
AudioRecord recordInstance = null;
// We're important...
android.os.Process
.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
short bufferSize = 4096;// 2048;
recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, this //line 167
.getFrequency(), this.getChannelConfiguration(), this
.getAudioEncoding(), bufferSize); //object not created
tempBuffer = new short[bufferSize];
recordInstance.startRecording();
Lo que pasa es que recordInstance no se crea correctamente y por lo que cuando se llega al final y llama a recordInstance.startRecording(), recordInstance sigue siendo nulo. Android rechaza mi solicitud de programas en la definición. ¿Alguien sabe lo que indican esos errores? No pude encontrar una lista en línea.
Gracias
Era el recordInstance.release(). Gracias – FuegoFingers
La parte difícil es cuando se trabaja en cosas y pruebas, a veces el programa se bloquea y la forma de llamar a recordInstance.release() entonces? De hecho, voy a hacer una nueva pregunta sobre eso ahora mismo. – chaimp
Asegurándome de que se cumplan las 3 condiciones solucionó el problema para mí. Agradable (+1). aunque hacky, ¿un manejador de excepciones universal/no capturado podría hacer el truco? –