无法访问AudioRecorder

时间:2010-12-03 04:31:08

标签: android audio audiorecord

我正在尝试通过小型录音从服务中找到声压级,但Android不会让我访问硬件。我在Logcat中遇到以下错误:

alt text

错误来自以下代码:

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在定义中拒绝我的程序请求。有谁知道这些错误表明了什么?我在网上找不到一个列表。

AudioRecord Docs

由于

1 个答案:

答案 0 :(得分:19)

检查三件事:

  1. 您的权限(您需要授予RECORD_AUDIO权限)

  2. 你有没有运行过一次而没有调用recordInstance.release()?如果是这样,您可能已经占用了音频资源,在重新启动手机之前它可能无法运行。无论如何,我已经找到了我的经验。

  3. 3.缓冲区大小。有一个静态方法AudioRecord.getMinBufferSize()