У нас есть Android-устройство, на котором мы хотели бы использовать microphone
в 2 приложениях одновременно.
Фактически, у нас есть служба вокальной команды, которая работает в фоновом режиме (мы используем библиотеку CMU Sphinx
). Проблема в том, что когда мы запускаем видеомагнитофон (приложение камеры), мы не можем начать запись, так как 2 приложения не могут одновременно получить доступ к микрофону.
Ошибка
08-20 12:20:14.601: I/MediaRecorderJNI(7261): prepare: surface=0x59590668
08-20 12:20:15.916: E/MediaRecorder(7261): start failed: -38
08-20 12:20:15.916: E/com.example.CamcorderView(7261): Failed to start recorder.
08-20 12:20:15.916: E/com.example.CamcorderView(7261): java.lang.IllegalStateException
08-20 12:20:15.916: E/com.example.CamcorderView(7261): at android.media.MediaRecorder.start(Native Method)
Обратите внимание, что камера работает хорошо, когда вокальная служба выключена.
Кроме того, я точно знаю, что я уже прочитал этот поток:
Android: одновременный доступ к микрофону (RecognizerIntent + собственное приложение)
но разница в том, что мы имеем руку на O/S и ядро. Поэтому мы можем применить патч, если это необходимо.
Это ограничение SDK/OS/Kernel
? Есть ли способ обхода?