Класс MediaRecorder начинает запись звука после небольшой задержки - PullRequest
4 голосов
/ 04 апреля 2011

У меня проблема с классом MediaRecorder.Когда я вызываю метод start (), рекордер начинает запись (аудио), но после некоторой задержки (задержка довольно заметна - примерно 1 секунда).Я видел, что это происходит на устройствах Android 2.3, в частности Samsung Nexus S. Эта проблема не появляется на Android 1.6 (G1) или любой версии эмуляторов Android.Не могли бы вы подтвердить, если вы видите эту проблему и существует ли решение для той же?Это задокументированная ошибка?

Ответы [ 3 ]

3 голосов
/ 29 апреля 2011

Похоже, это ошибка в MediaRecorder или в прошивке устройства. Вы можете увидеть ту же задержку в приложении камеры по умолчанию, которое также использует MediaRecorder. Я также заметил, что в конце каждой записи есть дополнительный звук, когда видео прекращает запись. Тем не менее, видео и аудио, кажется, синхронизируются по всему видео. Это примерно так:

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

Так что звук на самом деле не «смещен», он просто начинается и заканчивается после захвата видео.

Я наблюдаю задержку на планшете Motorola Xoom под управлением Honeycomb (Android 3.0).

Смотрите отчет об ошибке здесь: http://code.google.com/p/android/issues/detail?id=15953

2 голосов
/ 16 октября 2011

Я нашел проблему (не связанную с CyanogenMod): https://github.com/CyanogenMod/android_frameworks_base/commit/d7f1c3d69274fef8772a663ce1c792fd0466fcc5

Этот коммит попал между Android 2.2 и 2.3. Похоже, его целью является отключение звука стандартного приложения камеры при начале записи (хотя 1 секунда для этого кажется немного длинной) И это должно постепенно исчезать в звуке, но реализация, кажется, не работает. Через 1 секунду это сложно, вы можете попробовать это в приложении камеры.

Я действительно не понимаю, почему они реализовали это на этом уровне, где затрагиваются и другие приложения. И поведение не настраивается, поэтому я не вижу возможного обходного пути. Мы можем только надеяться, что это будет исправлено в будущих версиях.

0 голосов
/ 09 августа 2011

Я добавил в отчет об ошибках Android, связанный с alalonde. Я вижу это как ошибку Android 2.3, так как тот же код прекрасно работает на 2.2 и более ранних версиях. У меня myTouch 4G, который отлично работал на стоковой прошивке 2.2. Как только я обновился до Cyanogen Rom на основе 2.3.3, я заметил задержку в 1 секунду. Одинаковое оборудование, одно и то же приложение, другая версия ОС. Должна быть ОС.

...