Как определить, что приложение воспроизводит аудио или записывает?

Я разрабатываю приложение для Android. Если у нас есть имя пакета приложения, можем ли мы узнать, воспроизводит ли приложение музыку или записывает голос или нет? Я понятия не имею, как это сделать. Если кто-то сделал это, не могли бы вы помочь мне или дать мне информацию об этом?

Спасибо за вашу помощь,


person sophie281988    schedule 07.09.2015    source источник
comment
На самом деле, я хочу сделать следующее: у меня есть имя пакета приложения, и телефон находится в музыкальном режиме или нет. В случае, если он находится в музыкальном режиме, можем ли мы узнать, что воспроизводимый звук — это приложение или другое приложение. Другими словами, можем ли мы получить имя проигрывающего аудио приложения?   -  person sophie281988    schedule 08.09.2015


Ответы (1)


AudioManager — это то, что вам нужно. Вы можете проверить этот ответ: https://stackoverflow.com/a/16252044/3743245 Также официальная документация: AudioManager

И небольшой пример того, как его использовать:

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);


if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so you can do your stuffs now .
}

Их вы добавляете focusChangeListener, перечисленных в ссылке, которую я вам оставил.

person Mariano Zorrilla    schedule 07.09.2015
comment
Спасибо за вашу помощь, я видел этот вопрос раньше, но это не то, что я хочу. Я не мог использовать его для своего приложения. Я только что похвалил свой вопрос, чтобы объяснить больше. Можем ли мы это сделать? - person sophie281988; 08.09.2015