2013-07-04 4 views
4

Я использую API AudioRecord для записи звука (WAV) в своем приложении, и он успешно записывается. Но мое приложение ведет себя странно, когда я пытаюсь записать, в то время как другие приложения для записи работают в фоновом режиме.Как проверить, работает ли другой рекордер или нет?

API-код MediaRecorder API вызывает исключение при попытке начать запись в то время, когда выполняется другой рекордер, но API-интерфейс AudioRecord инициализирует экземпляр рекордера и не генерирует никаких исключений, поэтому я не могу определить, работает ли какой-либо экземпляр рекордера или нет.

Этот сценарий был обработан в Samsung S3 по умолчанию Voice Recorder, когда я пытаюсь записать это говорит

«Невозможно начать новую запись. Другие приложения уже запись»

Как могу я определить, запущен ли какой-либо другой рекордер или нет до начала записи моего приложения?

+0

Вы поняли, как мы можем это сделать? –

+1

@SakiMake да, я отправлю его в качестве ответа. –

+0

Спасибо @Reneez –

ответ

5

Я нашел решение этой проблемы

Поскольку AudioRecord не выбрасывает никаких исключений в отличие от MediaRecorder API, я пошел на другой обходной путь.

Когда другой экземпляр рекордер работает я обнаружил, что метод возвращает read вместо ERROR_INVALID_OPERATION или ERROR_BAD_VALUE. Поэтому, если первая операция чтения возвращает , я обнаружил сообщение об ошибке, поскольку «Recorder не может быть инициализирован».