2 votes

Pendant combien de temps Exoplayer joue-t-il en arrière-plan ?

J'ai utilisé Exoplayer pour lire un flux audio. Vous pouvez voir le code ci-dessous. Je ne suis pas un développeur Android professionnel, mais je sais que sur Android, si vous voulez que quelque chose fonctionne en arrière-plan, vous devez utiliser des services. Je ne m'attendais pas à ce que ce lecteur fonctionne en arrière-plan, mais c'est le cas. Ma question est la suivante. Est-ce que cela est suffisant pour que le lecteur fonctionne correctement en arrière-plan, est-ce que exoplayer gère le mode arrière-plan par défaut, ou est-ce que le lecteur sera arrêté au bout d'un moment. Est-ce qu'il est toujours nécessaire de créer un service qui fonctionne en arrière-plan ?

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
        }

2voto

Ogbe Points 718

Vous devez créer un service car vous ne pouvez pas garantir que la musique continuera à être diffusée en arrière-plan. Le système d'exploitation Android tuera votre application si elle a besoin de ressources pour exécuter d'autres applications qui sont au premier plan ou qui utilisent des services, vous pouvez consulter cet article pour plus d'informations. Qui vit et qui meurt ? Priorités des processus sur Android . Si la musique est jouée suffisamment longtemps, elle s'arrête après la fermeture de l'application.

2voto

Manti_Core Points 109

Vous volonté Il faut un service pour faire fonctionner exoplayer, j'en ai fait l'expérience lorsque j'essayais exoplayer. Tout d'abord, Android détruira votre activité ainsi que l'instance de votre exoplayer.

Si vous appuyez sur la touche Retour ou si vous êtes en arrière-plan, l'application pourra toujours fonctionner, mais après quelques minutes, elle s'arrêtera, Android essayant de libérer des ressources.

C'est en fait une très bonne chose de faire les choses par l'intermédiaire d'un service, de sorte que vous pouvez faire beaucoup de choses sans faire de tâches lourdes sur le fil principal de votre activité.

Vous avez juste besoin d'un service de premier plan qui nécessite également une notification avec un canal spécifique, vous pouvez également faire la notification de style média afin que vous puissiez contrôler votre lecture à travers la notification ou même lorsque l'écran est verrouillé.

cette explique comment travailler avec les services

Pourquoi vous avez besoin d'un service (Citation de cette article )?

Vous ne devez utiliser un service de premier plan que lorsque votre application doit effectuer une tâche qui est perceptible par l'utilisateur même s'il n'interagit pas directement avec l'application. directement avec l'application.

D'après l'un de vos commentaires, il semble que pendant le développement, l'exoplayer soit heureusement en vie, mais je dirais qu'une fois que vous aurez déployé votre application sur différents appareils, vous voudrez peut-être repenser l'approche consistant à utiliser une activité ou un service pour l'exoplayer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X