AudioRecord.read()方法在Android 4.3+上无限期阻止

时间:2015-01-06 09:39:33

标签: android audiorecord

在下一个序列之后,AudioRecord.read()方法在Android 4.3 +上无限制地阻塞:

1) Create Audio record object in first activity.
2) start(), read(), stop(), release()
3) Open second Activity
4) Create Audio record object in second activity.
5) start(), read() <- "read" method blocks indefinitely, and i get this warnings in LogCat:

logcat的:     01-06 12:29:45.797:W / AudioRecord(20225):死了IAudioRecord,从start()创建一个新的     01-06 12:29:45.799:I / AudioFlinger(185):AudioFlinger的线程0xb3060000准备好运行     01-06 12:29:45.805:W / AudioPolicyManager(185):releaseInput()释放未知输入1276

一些代码:

int min_buff_size = AudioRecord.getMinBufferSize(44100,
                    AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_PCM_16BIT);

            AudioRecord recorder = new AudioRecord(AudioSource.MIC, 
                    read_samplerate, 
                    AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_PCM_16BIT, 
                    min_buff_size);

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的问题可能是因为每次使用后都没有发布audiorecord。要解决您的问题,您可以按照以下步骤操作:

  1. 重新启动手机,启动时不要运行任何内容
  2. 添加代码以将您的audiorecord释放到您要停止的某个位置,例如:的onPause()。

    audiorecord.stop();

    audiorecord.release();

  3. 再次运行测试。

  4. 希望得到这个帮助。