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

标签 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:

日志猫: 01-06 12:29:45.797:W/AudioRecord(20225):死 IAudioRecord,从 start() 创建一个新的 IAudioRecord 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. 重新启动手机,启动时不要运行任何程序
  2. 添加代码以在您想要停止的地方释放您的录音,例如onPause()。

    audiorecord.stop();

    audiorecord.release();

  3. 再次运行测试。

希望这有帮助。

关于android - AudioRecord.read() 方法在 Android 4.3+ 上无限期阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795851/

相关文章:

android - AudioRecord 与新的 HTC One 系列安卓手机

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

Android AudioRecord - native 初始化失败

java - 使用频率从安卓获取超声波

android - 如何获取适用于 Android 应用程序的 Kakaotalk API?

android - 倒数计时器在后台更新用户界面

php - 在 php 中的 Android post 请求

Android: AudioRecord.read() 调用后返回数组填充 "0"

android - 如何高效地实现gridview布局

android - 有没有办法在 CDMA 模式下运行 Android 模拟器?