我面临一个问题,即在按钮触摸时我开始在我的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()。由于我不知道此代码的上下文,因此无法确切告诉您位置。

10-08 09:15