次のリンクで、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
}
}
};