MediaRecorder类在稍微延迟后开始录制音频

时间:2011-04-04 02:02:12

标签: android audio-recording mediarecorder

我遇到了MediaRecorder课程的问题。当我调用start()方法时,录音机开始录音(音频),但经过一段时间后延迟(延迟非常明显 - 大约1秒钟)。我在Android 2.3设备上看到过这种情况,特别是三星Nexus S.此问题不会出现在Android 1.6(G1)或任何版本的Android模拟器上。您能否确认您是否看到此问题以及是否存在相同的解决方案?这是一个记录在案的错误吗?

3 个答案:

答案 0 :(得分:3)

这似乎是MediaRecorder中的错误或设备的固件。您可以在默认的Camera应用程序中看到相同的延迟,该应用程序也使用MediaRecorder。我还注意到,每次录制结束时都有额外的音频,过去录制视频停止录制时。但是,视频和音频似乎在整个视频中同步。它是这样的:

   =========================================     Audio being captured
=========================================        Video being captured
|----|----|----|----|----|----|----|----|----|   Time
^                                       ^
start()                               stop()

所以音频并没有真正“转移”,它只是开始和结束视频捕捉。

我正在目睹运行Honeycomb(Android 3.0)的摩托罗拉Xoom平板电脑的延迟。

在此处查看错误报告:http://code.google.com/p/android/issues/detail?id=15953

答案 1 :(得分:2)

我追踪了问题(不是与CyanogenMod相关): https://github.com/CyanogenMod/android_frameworks_base/commit/d7f1c3d69274fef8772a663ce1c792fd0466fcc5

此提交介于Android 2.2和2.3之间。它的目的似乎是在开始录制时静音默认相机应用程序的声音(虽然1秒似乎有点长)。它应该逐渐淡出声音,但实现似乎不起作用。这是1秒后的硬切,你也可以在相机应用中尝试这个。

我真的不明白为什么他们在这个级别实现它,其他应用程序也会受到影响。并且行为不可配置,因此我看不到可能的解决方法。我们只能希望它将在未来的版本中修复。

答案 2 :(得分:0)

我已添加到由alalonde链接的android错误报告中。我认为这是一个Android 2.3的错误,因为相同的代码在2.2及更早版本上运行得很好。我有一个myTouch 4G,可以在2.2固件上运行。一旦我根据2.3.3升级到Cyanogen Rom,我注意到了1秒的延迟。相同的硬件,相同的应用程序,不同的OS版本必须是操作系统。