我在以下链接how to know when audio is started playing in android中提出了一个问题
我得到了一个完美的答案。我附上了它的代码。现在我的问题是,当音乐开始播放时,音频焦点会丢失。和我的onfocuschange
监听器没有响应音频管理器中的更改。我的代码有什么问题吗?因此,我可以在音频管理器中收听所有更改(开始,暂停,停止)。谢谢你的帮助。
我在服务类中实现了它。
am = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
am.getMode();
afChangeListener = new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
Log.d("new","focus: " +focusChange+"mode "+am.getMode() +"ismusic "+am.isMusicActive());
if (focusChange == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT){
Log.d("new","focus:started trans " );
}else if (focusChange == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK){
Log.d("new","focus:started duck " );
}
else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT){
Log.d("new","focus:paused " );
} else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
Log.d("new","focus:started " );
} else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
Log.d("new","focus:stoped " );
// am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
// am.abandonAudioFocus(afChangeListener);
// Stop playback
}
}
};