android - AudioFlinger 无法创建记录轨道,状态 : -1 , 需要 ifx 帮助

标签 android audiorecord

public class AudioRecorderActivity extends Activity {

  private static final int RECORDER_SAMPLERATE        = 8000;
  private static final int RECORDER_CHANNELS          = AudioFormat.CHANNEL_IN_MONO;
  private static final int RECORDER_AUDIO_ENCODING    = AudioFormat.ENCODING_PCM_16BIT;
  private AudioRecord recorder                        = null;
  private static final String TAG                     = "AudioRecorderActivity";
  short[][]   buffers                                 = new short[256][160];
  int         ix                                      = 0;
  private boolean     stopped                         = false;

  private void startRecording() {

    android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
    try {
      int N = AudioRecord.getMinBufferSize (  
                          RECORDER_SAMPLERATE, 
                          RECORDER_CHANNELS, 
                          RECORDER_AUDIO_ENCODING) * 20;

      recorder = new  AudioRecord(AudioSource.MIC,
                    RECORDER_SAMPLERATE, 
                    RECORDER_CHANNELS,
                    RECORDER_AUDIO_ENCODING,N );        

      recorder.startRecording();

      while(!stopped) {
        short[] buffer = buffers[ix++ % buffers.length];      
        N = recorder.read(buffer,0,buffer.length);
      }

    } 
    catch(Throwable x) { 
      Log.v(TAG,"Error reading voice audio",x);
      x.printStackTrace();
    } 
    finally { 
      stopped = true;
      stopRecording();
    }    
  }  
}

问题:虽然代码 fragment 基于 StackOverflow 的示例,但它不起作用 请让我知道可能是什么错误?

这是错误信息

12-20 03:44:32.271: E/AudioRecord(224): AudioFlinger could not create record track, status: -1
12-20 03:44:32.271: E/AudioRecord-JNI(224): Error creating AudioRecord instance: initialization check failed.
12-20 03:44:32.271: E/AudioRecord-Java(224): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.

最佳答案

为AndroidManifest.xml添加record_audio权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />

关于android - AudioFlinger 无法创建记录轨道,状态 : -1 , 需要 ifx 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693001/

相关文章:

Java对象混淆

java - Android AudioRecord 读取总是返回 -3 (ERROR_INVALID_OPERATION)

android - 录音机 |解释频谱分析仪的 FFT 数据

android - 在Android上捕获原始麦克风输入

Android 强制 AudioRecord 使用耳机麦克风

uiviewcontroller - 如何构建 iOS7 Style Audio Recorder App

Java/Android Activity 和数据库 close() 问题

Android从浏览器获取url

java - 关于如何获得2个相同尺寸的组件进行水平线性布局的一些疑问?

java - 如何在广播接收器上使用 if else 语句?