Почему отказ от использованияAudioFocus не работает в приложении Android для Android

Вопрос:Im, используя этот код, чтобы получить 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 недостаточно снижает объем. Как и

Вопрос:

Im, используя этот код, чтобы получить 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 не возобновляет воспроизведение?

im, используя api8 и используя onAudioFocusChange

Лучший ответ:

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

Ответ №1

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

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

Abandon AudioFocus:

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

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

Ответ №2

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

Оцените статью
Добавить комментарий