I'm trying to detect android sounds and pause my app's music (temporarily or permanently) while they make noise.
This code appears to do nothing (stop pauses the music and p writes to the log), it never gets called:
public class PollyPrissyPants extends Activity implements OnAudioFocusChangeListener {
// Blah blah blah
public void onAudioFocusChange(int mal) {
p("--CHANGE!!!--" + mal);
stop();
}
// Yada yada yada
}
Do I have to set it up somewhere else as well? Is @Override relevant?
I haven't tried PhoneStateListener but if possible I don't want to have to treat phone calls, alarms, notifications, games, etc separately. I'm using vibrate for now but it sucks as a solution. If I get called, I have to answer and then quickly get开发者_StackOverflow社区 to my app and pause it.
You have to register the OnAudioFocusListener
with the AudioManager
:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.requestAudioFocus(this,
AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
The this
parameter is a reference to the class implementing OnAudioFocusListener
.
精彩评论