Воспроизведение аудио MediaPlayer останавливается, когда приложение входит в фоновый режим (OREO) - PullRequest
0 голосов
/ 11 октября 2018

У меня есть класс менеджера с массивом MediaPlayer экземпляров, который является менеджером для воспроизведения аудио в моем приложении.До сих пор он отлично работал в фоновом режиме и продолжал воспроизводить аудио, когда устройство заблокировано.

Теперь, начиная с устройств Oreo, воспроизведение звука прекращается.Существует ли простой способ заставить устройство поддерживать работу экземпляра MediaPlayer, который воспроизводит звук?Я имею в виду простой способ без использования сервисов или без создания пользовательских панелей на панели уведомлений устройства, которые я нашел здесь сейчас при переполнении стека.Наверное, должно быть проще.

Это код, который я использовал для воспроизведения звука до сих пор:

MediaPlayer mPlayer =  new MediaPlayer();
AssetFileDescriptor fileDescriptor = ApplicationContextProvider.getContext().getAssets().openFd(res.getUrl());
long start = fileDescriptor.getStartOffset();
long end = fileDescriptor.getLength();
mPlayer.setDataSource(fileDescriptor.getFileDescriptor(), start, end);
mPlayer.prepareAsync();
mPlayer.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
});
mPlayer.setLooping(loop);
fileDescriptor.close();

Большое спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Используйте передний план Serive.Подробнее о том, почему служба больше не работает, смотрите

https://www.youtube.com/watch?v=Pumf_4yjTMc

В ней четко сказано, что фоновые службы будут остановлены.Для учебника по Foreground Services смотрите:

https://www.youtube.com/watch?v=FbpD5RZtbCc

Помните, что вам также необходимо изучить каналы уведомлений, начиная с Oreo.Этот парень тоже это представил.

...