【问题标题】:MediaRecorder class starts recording audio after slight delayMediaRecorder 类在稍有延迟后开始录制音频
【发布时间】:2011-10-17 03:22:22
【问题描述】:

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

【问题讨论】:

  • 你在 start() 之前调用过 prepare() 方法吗?
  • 是的,我确实在调用 start() 之前调用了 prepare() 方法
  • 我正在经历同样的事情。如果您有任何更新,请在此处发布。我也会这样做。
  • 现在8月份了,有没有人找到解决办法?
  • 我在 allonde 报告的 google 代码上为该问题加了星标

标签: android audio-recording mediarecorder


【解决方案1】:

这似乎是 MediaRecorder 或设备固件中的错误。您可以在同样使用 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

【讨论】:

    【解决方案2】:

    我找到了问题(与 CyanogenMod 无关): https://github.com/CyanogenMod/android_frameworks_base/commit/d7f1c3d69274fef8772a663ce1c792fd0466fcc5

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多