Android:AudioRecord.read()返回数组填充" 0"打完电话后

时间:2014-11-28 07:59:46

标签: android phone-call audiorecord

我正在编写一个实时录制和播放声音的程序。它工作得很好,但在我拨打电话并结束通话后,程序播放约1秒,然后无声无误地播放。 我错误检查值并看到audioRecord.read(buffer,0,buffer.leng)返回数组填充零值。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您的手机控制了麦克风并阻止了录音。要检查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
        }
    }
}