我正在尝试通过小型录音来查找服务的声压级,但 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 仍然为空。 Android 在定义时拒绝了我的程序请求。有谁知道那些 errno 表示什么?我在网上找不到列表。
谢谢
最佳答案
检查三件事:
您的权限(您需要授予 RECORD_AUDIO 权限)
您是否运行过一次并且没有调用 recordInstance.release()?如果是这样,您可能已经占用了音频资源,并且在您重新启动手机之前它可能无法工作。无论如何,我在我的经验中发现了这一点。
3.缓冲区大小。有一个静态方法 AudioRecord.getMinBufferSize()
关于android - 无法访问录音机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342482/