Я хотел бы получить обратный вызов, когда поток musi c станет активным. Скажем, я запускаю веб-просмотр с видео на YouTube или запускаю musi c на spotify, используя их API. В конце концов, поток musi c запустится. Может быть, не сразу, но я хотел бы получить обратный звонок, как только это произойдет. Поскольку мне, возможно, придется иметь дело с несколькими внешними аудиопроигрывателями, я хотел бы что-то общее, а не спецификацию проигрывателя c.
Могу ли я что-то наблюдать или получать намерение, как только MUSIC_STREAM начинает играть?
Я хотел бы иметь что-то вроде:
musicActiveReceiver.setListener(Callback {warningTextView.text = "Music stream is on."})
Это почти замечательно:
private class BecomingNoisyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == AudioManager.ACTION_AUDIO_BECOMING_NOISY) {
// Pause the playback
}
}
}
, но я не хочу использовать AudioManager.ACTION_AUDIO_BECOMING_NOISY
, поскольку предполагается, что проблема связана с оратор. В моем случае я также хочу уловить случай, когда используется гарнитура.
Можно было бы регулярно проверять AudioManager.isMusicActive()
, но я бы предпочел этого избежать.