我们有一个安卓设备,想要在两个应用程序中同时使用麦克风。实际上,我们有一个后台运行的语音命令服务(使用CMU Sphinx库)。问题在于当我们启动录像机(相机应用程序)时,由于两个应用程序不能同时访问麦克风,因此无法开始录制。
错误。
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 + 自己的应用程序)
但是这里的区别在于我们对操作系统和内核有控制权。因此,如果需要,我们可以应用补丁。
这是一个SDK / OS / Kernel
的限制吗?是否有任何解决方法?