无法访问AudioRecorder

Fue*_*ers 5 audio android audiorecord

我正试图通过小型录音从服务中找到声压级,但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();
Run Code Online (Sandbox Code Playgroud)

会发生什么是recordInstance从未正确创建,所以当它到达结尾并调用recordInstance.startRecording()时,recordInstance仍为null.Android在定义中拒绝我的程序请求.有谁知道这些错误表明了什么?我在网上找不到列表.

AudioRecord Docs

谢谢

cha*_*imp 19

检查三件事:

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

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

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

  • 这是recordInstance.release().谢谢 (3认同)