我正在实施音乐播放器作为服务,并且希望在通知到达手机时降低音乐的音量。OnAudioFocusChangeListener无法处理“鸭子”的通知声音我的音频
这是我做的:
AudioManager audioManager = (AudioManager)getApplicationContext(). getSystemService(Context.AUDIO_SERVICE);
int result = audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
,我的听众是:
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
if (!mediaPlayer.isPlaying()){
mediaPlayer.start();
mediaPlayer.setVolume(1.0f, 1.0f);
}
break;
case AudioManager.AUDIOFOCUS_LOSS:
// Lost focus for an unbounded amount of time: stop playback and release media player
if (mediaPlayer.isPlaying()) mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
if (mediaPlayer.isPlaying()) mediaPlayer.pause();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// Lost focus for a short time, but it's ok to keep playing
// at an attenuated level
if (mediaPlayer.isPlaying()) mediaPlayer.setVolume(0.2f, 0.2f);
break;
default:break;
}
}
};
当有来电时,它完美的作品。当我收到短信,gmail,whatsapp等通知时,监听器不捕获事件。
我也试图与:
AudioManager audioManager = (AudioManager)getApplicationContext(). getSystemService(Context.AUDIO_SERVICE);
int result = audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK);
喜欢这里解释:Managin Audio Focus
,但听者不听反正通知称输入。
而且我也尝试过在服务中实现AudioManager.OnAudioFocusChangeListener,但是发生的情况相同,呼叫处理得好,通知没有。
我加入这个清单上.... 使用许可权的android:NAME =“android.permission.MODIFY_AUDIO_SETTINGS
我能做些什么,为什么通知不会改变AudioFocus ??
感谢Kevin的详细解答。我已经接受你的答案。我已经看到Google Play音乐没有实现这个选项,所以我保持冷静。我将为GPS和其他应用程序实现此选项。非常感谢你! – Juanjo