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

标签 android phone-call audiorecord

我正在编写一个程序来实时录制和播放声音。它运行良好,但在我调用电话并结束电话后,程序播放了大约 1 秒,然后它没有错误地静音。 我错误地检查值并看到 audioRecord.read(buffer, 0, buffer.leng) 返回填充了零值的数组。 感谢您的帮助!

最佳答案

您的手机控制了麦克风并阻止了它的录音。检查并查看是否发生这种情况 Log read()

返回的值
while(recording) {

    int resultOfRead = audioRecord.read(anArray, 0, anArray.length);
    Log.d("MY_TAG", "Read result: " + resultOfRead);

    if(resultOfRead < 0) {

        try {
            Thread.sleep(100, 0);
            audioRecord.startRecording(); // restart audio recording
        } catch(Exception e) {
            Log.e(TAG, "exception", e); // Error trying to sleep thread
        }
    }
}

关于Android: AudioRecord.read() 调用后返回数组填充 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27184268/

相关文章:

java - Android AudioRecord 不会初始化

android - 位图选项 inSampleSize = 1 时应用程序崩溃

android - 在 Android 4.1.2 上触发全屏视频播放

Java - Android Studio MP3 使用

android - 限制在android中的webview中调用号码

Android AudioRecord 初始化失败

java - 如何在 Android 应用程序中运行终端命令?

Twilio:一次调用多个电话号码并连接到第一个接听的电话号码

ios - iPhone 的电话号码格式

java - 在 Android 中线程化的最佳方法?