录音延迟

时间:2018-06-07 15:38:06

标签: java android audio audio-recording

我正在Android Studio中编写应用程序,我需要在两个不同的设备上同步开始录制音频。我的程序必须根据声源的距离检测两台设备之间的延迟。

不幸的是,即使我的程序有一个非常精确的计时器并在给定时间发送recorder.start(),在时间和实际开始录音之前会有一段延迟(小于0.5秒)。 / p>

有没有办法测量延迟,提前开始录音? 如果没有,有什么方法可以消除延迟吗?

我已经看到了关于延迟的问题,但解决方法是简单地确保录制已开始,然后开始发出声音,但它对我没有帮助,因为我必须开始录制确切同时在两个Android设备上。任何帮助或建议将不胜感激。

这是我的代码:

    int i = 0;
    while((wavFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/JavaApps/"+"output" + i + ".mp4")).isFile())
        i++;
    finalName = Environment.getExternalStorageDirectory().getAbsolutePath()+"/JavaApps/"+"output" + i + ".mp4";
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    recorder.setOutputFile(wavFile.getAbsolutePath());
    try {
        recorder.prepare();

    } catch (Exception e) {
        e.printStackTrace();
    }

^所有这些都是在录音必须开始之前作为准备发生的

    recorder.start();
    try {
        Thread.sleep(duration*1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    recorder.stop();

    recorder.release();
    recorder = null;

^当时间达到设定值时,会发生此部分。

0 个答案:

没有答案