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