我正在尝试通过小型录音从服务中找到声压级,但Android不会让我访问硬件。我在Logcat中遇到以下错误:
错误来自以下代码:
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();
RecordInstance从未正确创建,因此当它到达结尾并调用recordInstance.startRecording()时,recordInstance仍为null。 Android在定义中拒绝我的程序请求。有谁知道这些错误表明了什么?我在网上找不到一个列表。
由于
答案 0 :(得分:19)
检查三件事:
您的权限(您需要授予RECORD_AUDIO权限)
你有没有运行过一次而没有调用recordInstance.release()?如果是这样,您可能已经占用了音频资源,在重新启动手机之前它可能无法运行。无论如何,我已经找到了我的经验。
3.缓冲区大小。有一个静态方法AudioRecord.getMinBufferSize()