我面临一个问题,即在按钮触摸时我开始在我的android应用程序中录制音频,但是当我播放录制的音频时,它缺少录制的音频的持续时间。
这是我的代码段,用于通过以下方式提供的按钮触摸来开始录制语音:
public void start() {
myRecorder = new MediaRecorder();
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setOutputFile(outputFile);
try {
myRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
myRecorder.start();
text.setText("Recording point: Recording...");
}
在检测到触摸事件时,我开始调用此start();。功能。
谁能告诉我任何替代解决方案?我在Galaxy S3安卓设备上遇到了这个问题。
最佳答案
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setOutputFile(outputFile);
上面的代码需要一些时间,因此用户按下按钮(称为
start()
)与记录器实际开始记录(myRecorder.start()
)之间存在延迟。您应该初始化记录器,并在按下按钮之前准备好它。只需将上面的代码移到其他地方,例如
onCreate()
。由于我不知道此代码的上下文,因此无法确切告诉您位置。