在我的应用程序中,服务通过 AudioRecord 持续录制音频。当我的应用程序运行时,其他与音频记录相关的应用程序(例如 Google 搜索)无法工作。
如何知道何时有其他应用想要录制音频,以便我可以停止录制以释放资源?
答案是MediaRecorder.AudioSource.HOTWORD https://android.googlesource.com/platform/frameworks/base/+/master/media/java/android/media/MediaRecorder.java#215- 它会自动将麦克风交给任何其他需要它的东西,使用MIC
音频源:当我在 PocketSphinx(热词识别器)上使用该源时,如果我开始使用某些应用程序进行录制,PocketSphinx 会立即抛出录制错误并停止,我可以继续检查是否可以再次重新启动它(通过检查是否可以重新启动它)HOTWORD
音频源可用),当我停止在其他应用程序上录制时,它会自动重新启动。
虽然......你必须有CAPTURE_AUDIO_HOTWORD
权限是系统特权权限。所以这不是一个令人惊叹的解决方案(除非你是一个系统应用程序,然后它是令人惊叹的)。但它确实有效。HOTWORD
自 KitKat (API 19) 起就存在。
Note:这适用于 Android 10 或更早版本的设备。比这新的我认为有所不同?还没研究过,不过官方文档如下:https://developer.android.com/guide/topics/media/sharing-audio-input https://developer.android.com/guide/topics/media/sharing-audio-input.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)