почему не работает приложение «АудиоФокус» в приложении Android Music - PullRequest
2 голосов
/ 07 октября 2011

Я использую этот код для получения AudioFocus, и он работает нормально с
приложением Android Music (предварительно установленным)

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

Однако, когда я выпускаю его с этим кодом

audioManager.abandonAudioFocus(meService);

Приложение Android Music (предварительно установленное) не продолжает воспроизведение.

, если я использую AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK, оно работает
, но приложение Android Music недостаточно снижает громкость.

Любые иды, почему приложение Android Music не возобновляет воспроизведение?

я использую api8 и onAudioFocusChange

Ответы [ 3 ]

0 голосов
/ 14 октября 2013

После попытки 4 игрока ни один из них не уклоняется. Возможно, я что-то делаю не так и хотел бы это увидеть. Я отвечаю на свой собственный вопрос, что мы должны жить с этим.

0 голосов
/ 14 мая 2016

Этот способ отлично работает для меня.

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);
}

Надеюсь, это поможет вам.

0 голосов
/ 15 августа 2012

Вы должны выпустить его в MediaPlay.onCompleteListener(){}

...