如何解决如何监听外部玩家活动
在前台服务中,我正在通过 MediaRecorder (MediaRecorder.AudioSource.MIC) 录制电话麦克风捕获的音频。 如果有任何外部应用程序正在播放和音频,我想停止/暂停录音。
如何检测正在播放/停止执行音频/视频的其他应用的任何外部操作?
更新: 我尝试使用 AudioManager.OnAudioFocuschangelistener。
val afchangelistener: AudioManager.OnAudioFocuschangelistener =
AudioManager.OnAudioFocuschangelistener {
focusChange ->
// focus Changed
}
val audioManager = getSystemService(Context.AUdio_SERVICE) as AudioManager
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
audioManager.requestAudioFocus(
AudioFocusRequest.Builder(AudioManager.AUdioFOCUS_GAIN)
.setonAudioFocuschangelistener(afchangelistener).build()
)
} else {;
audioManager.requestAudioFocus(
afchangelistener,AudioManager.STREAM_MUSIC,AudioManager.AUdioFOCUS_GAIN
)
}
它适用于以下场景:
- Facebook:播放/停止视频使 focusChange 返回AUdioFOCUS_LOSS_TRANSIENT/AUdioFOCUS_GAIN
- Instagram 视频/故事返回相同 (-2/1)
但是,对于 Spotify、Youtube、WhatsApp(语音消息)和许多其他应用程序,一旦它们开始播放媒体,focusChange 将返回 AUdioFOCUS_LOSS 但对于未来的事件没有别的,无论是应用程序正在工作(如 Facebook)被捕获。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。