2

このコードを使用してAudioFocusを取得すると、
Android Musicアプリ(プリインストールされているもの) で問題なく動作します

int result = audioManager.requestAudioFocus(meService, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);    

ただし、このコードでリリースすると

audioManager.abandonAudioFocus(meService);

Android ミュージック アプリ (プリインストールされているもの) が再生を続行しません。

使用するAUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCKと動作します
が、Android Music アプリは音量を十分に下げていません。

Android Music アプリが再生を再開しない理由はありますか?

私はapi8を使用し、onAudioFocusChange

4

3 に答える 3

0

この方法は私にとってはうまくいきます。

public class HomeActivity extends Activity implements AudioManager.OnAudioFocusChangeListener {


 // Other stuff

    @Override
    public void onAudioFocusChange(int focusChange) {
        if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.i("HomeActivity", "Audio focus granted.");
        }else if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
            Log.i("HomeActivity", "Audio focus failed.");
        }
    }
}

AudioFocus のリクエスト:

private void requestAudioFocus(){
        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        // Request audio focus for playback
        am.requestAudioFocus(this,
                // Use the music stream.
                AudioManager.STREAM_MUSIC,
                // Request permanent focus.
                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
}

AudioFocus を放棄します

private void abandonAudioFocus(){
        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        am.abandonAudioFocus(this);
}

これがお役に立てば幸いです。

于 2016-05-14T05:50:48.400 に答える
0

でリリースする必要があります。MediaPlay.onCompleteListener(){}

于 2012-08-15T07:01:45.750 に答える