jDo*_*ens 3 audio android audio-recording
我正在为 Android 编写一个应用程序,我的目标是录制用户唱歌。录音后,我播放与乐器同步的唱片(这不是问题)。
问题是,当我在播放音频的同时开始录音时,我怀疑录音开始有延迟:(当我稍后尝试播放录音时,当录音也录制了乐器时,这一点很明显)。Nexus 5 上的延迟可能约为 300 毫秒。
我的询问是:
如何摆脱延迟?
正如@Lukos 已经提到的,延迟很可能取决于处理速度。启动录音机只是需要一些时间。
我相信最好的解决方案是先启动录音机,然后在知道录音机启动后立即开始音频播放。这样你的录音会有一些延迟,但至少你是同步的。您需要确保播放已初始化,以便可以尽快开始播放。
这可以使用 AudioRecorder 回调来实现。
// Assuming you have a recorder objects defined somewhere
AudioRecord recorder;
recorder.setNotificationMarkerPosition(1);
recorder.setRecordPositionUpdateListener(new AudioRecord.OnRecordPositionUpdateListener() {
@Override
public void onMarkerReached(AudioRecord recorder) {
// start audio playback
}
@Override
public void onPeriodicNotification(AudioRecord recorder) {
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,我不确定标记的位置。您也许也可以使用 0,不确定这是否会在录制开始后立即向您发出通知,或者是否在实际开始之前发出通知。你必须在那里做一些测试。
| 归档时间: |
|
| 查看次数: |
2906 次 |
| 最近记录: |