Как долго Exoplayer будет играть в фоновом режиме? - PullRequest
1 голос
/ 01 августа 2020

Я использовал Exoplayer для воспроизведения аудиопотока. Вы можете увидеть код ниже. Я не профессиональный Android разработчик, но я знаю, что на android, если вы хотите, чтобы что-то работало в фоновом режиме, вы должны использовать службы. Не ожидал, что этот плеер будет играть в фоновом режиме, но он есть. У меня такой вопрос. Достаточно ли этого, будет ли проигрыватель нормально работать в фоновом режиме, будет ли exoplayer обрабатывать задний режим по умолчанию или проигрыватель будет отключен через некоторое время. Так нужно ли еще делать службу, работающую в фоновом режиме?

private fun setUpPlayer(){
            val renderersFactory = DefaultRenderersFactory(this)
            val trackSelector = DefaultTrackSelector()
            exoPlayer = ExoPlayerFactory.newSimpleInstance(this, renderersFactory, trackSelector)
            val userAgent = Util.getUserAgent(this, "FOOBAR")
            val mediaSource = ExtractorMediaSource(Uri.parse(radioLink), DefaultDataSourceFactory(this, userAgent), DefaultExtractorsFactory(), null, null)
            exoPlayer.prepare(mediaSource)
            exoPlayer.playWhenReady = true
        }

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Вам понадобится служба для запуска exoplayer, у меня был опыт с этим, когда я пробовал exoplayer. Прежде всего, android уничтожит вашу активность вместе с экземпляром вашего экзоплеера.

При нажатии назад или в фоновом режиме приложение по-прежнему сможет играть, но через пару минут оно остановится как android пытается освободить ресурсы.

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

Вам просто нужна служба переднего плана, которая также требуется уведомление с указанным каналом c, вы также можете сделать уведомление о стиле мультимедиа, чтобы вы могли управлять воспроизведением с помощью уведомления или даже когда экран заблокирован.

this В руководстве объясняется, как работать с сервисом

Зачем вам нужен сервис (цитата из этой статьи )?

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

Согласно Из ваших комментариев кажется, что во время разработки exoplayer, к счастью, жив, но я бы сказал, что как только вы развернете свое приложение на разных устройствах, вы, возможно, захотите переосмыслить подход к использованию активности или службы для exoplayer.

1 голос
/ 01 августа 2020

Вам следует создать службу, потому что вы не можете гарантировать, что музыка c продолжит воспроизведение в фоновом режиме. Операционная система android убьет ваше приложение, если ему потребуются ресурсы для запуска других приложений, которые находятся на переднем плане или используют службы. Вы можете проверить эту статью для получения дополнительной информации. Кто живет, а кто умирает? Приоритеты процесса на Android. Если вы продолжите играть musi c достаточно долго, он перестанет воспроизводиться после того, как приложение будет убито.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...