Android 无法录制音频并获取消息AudioFlinger:RecordThread:缓冲区溢出
在我的应用程序中,我有一个音频部分,其中有一个录制音频的recordBtn,一个播放录制的Audiobtn,只播放录制的音频,还有一个播放曲目(音乐音频)的playTrackBtn 当我单击录制BTN和播放TrackBTN时,录制的音频必须具有我录制的内容和曲目歌曲,但未录制我想要的内容,并在logcat中显示消息 11-16 04:40:24.060:WARN/AudioFlinger(90):RecordThread:缓冲区溢出 我录制的音频代码如下:Android 无法录制音频并获取消息AudioFlinger:RecordThread:缓冲区溢出,android,audio-recording,Android,Audio Recording,在我的应用程序中,我有一个音频部分,其中有一个录制音频的recordBtn,一个播放录制的Audiobtn,只播放录制的音频,还有一个播放曲目(音乐音频)的playTrackBtn 当我单击录制BTN和播放TrackBTN时,录制的音频必须具有我录制的内容和曲目歌曲,但未录制我想要的内容,并在logcat中显示消息 11-16 04:40:24.060:WARN/AudioFlinger(90):RecordThread:缓冲区溢出 我录制的音频代码如下: new Thread(recordin
new Thread(recordingThread).start(); // called thread from onCreate
private Runnable recordingThread = new Runnable() {
@Override
public void run() {
try {
startRecording();
} catch (Exception e) {
Log.d("error:", "" + e.getMessage());
}
}
};
public void startRecording() throws IOException {
String state = android.os.Environment.getExternalStorageState();
if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
Toast.makeText(MainActivity.this,
"SD Card is not mounted. It is " + state + ".",
Toast.LENGTH_SHORT).show();
} else {
String dirPath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
songTakePath = dirPath + "/SongWriters_Pad/"
+ title_view.getText().toString() + "-Take-" + count
+ ".wav";
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(songTakePath);
try {
recorder.prepare();
} catch (Exception e) {
e.printStackTrace();
}
recorder.start();
}}
请提供任何指导和一些代码片段。
谢谢。您在真实设备中试用过吗?当我录制声音时,它被清晰地录制下来,但我播放曲目,曲目正在播放。问题是当我必须录制我的声音和播放曲目时。