2013-11-12 1 views
2

Я внедрил функцию в своем приложении для Android, которое записывает аудиофайл с помощью mediaRecorder. Он отлично работает, но по некоторым причинам пропускает первую секунду записи.Почему MediaRecorder задерживает начало записи?

Я использовал то же самое code from the developer documentation, поэтому я не понимаю, почему он это сделает.

Я искал ответ на этот вопрос, я нашел нескольких людей с одинаковой проблемой, но никакого реального решения.

Вот мое исследование:

У меня есть устройство LG не уверен, если это может быть аппаратная проблема. Мне также известны некоторые альтернативы mediaRecorder, я просто хочу знать, нашел ли кто-нибудь способ решить эту проблему.

+0

Относительно тишины в начале записей; по крайней мере, на некоторых устройствах, с которыми я работал, это было сделано для того, чтобы вначале избежать выборок мусора из-за слишком быстрого считывания с микрофона после включения регулятора напряжения микрофона. Это молчание не продлилось ни на секунду, а на IIRC, так что вы можете посмотреть на другую проблему. – Michael

ответ

3

Дело в том, что класс mediaRecorder - дерьмо, если быть честным с вами.

Если вы столкнулись с одной и той же проблемой, с небольшой тишиной или мертвым воздухом, у вас не так много вариантов.

Эта проблема не может быть адресована кодом. Похоже, что это проблема с оборудованием.

К сожалению, какое-то устройство будет вести себя по-другому.

Решение должно использовать класс AudioRecorder, который является гораздо более гибким, так как он ближе к оборудованию. Не тратьте время на mediaRecorder!