1

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

0 に答える 0