Android Exoplayer将在后台播放多长时间?

Android Exoplayer将在后台播放多长时间?,android,kotlin,exoplayer,exoplayer2.x,Android,Kotlin,Exoplayer,Exoplayer2.x,我使用Exoplayer播放音频流。您可以看到下面的代码。我不是一个专业的Android开发人员,但我知道在Android上,如果你想在后台运行某些东西,你必须使用服务。我没想到这名球员会在后台打球,但确实如此。我的问题是。这足够了吗?玩家在后台可以正常工作吗?exoplayer默认处理bacground模式吗?或者玩家会在一段时间后关闭吗。那么,是否仍然需要创建在后台运行的服务 private fun setUpPlayer(){ val renderersFactor

我使用Exoplayer播放音频流。您可以看到下面的代码。我不是一个专业的Android开发人员,但我知道在Android上,如果你想在后台运行某些东西,你必须使用服务。我没想到这名球员会在后台打球,但确实如此。我的问题是。这足够了吗?玩家在后台可以正常工作吗?exoplayer默认处理bacground模式吗?或者玩家会在一段时间后关闭吗。那么,是否仍然需要创建在后台运行的服务

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
        }

您应该创建一个服务,因为您无法确保音乐将继续在后台播放。如果android操作系统需要资源来运行前台的其他应用程序或使用服务的应用程序,它会杀死你的应用程序,你可以查看本文以了解更多信息。 如果你让音乐播放足够长的时间,那么它将在应用程序关闭后停止播放。

你将需要一个服务来运行exoplayer,我在试用exoplayer时就有过这方面的经验。首先,android会破坏你的活动以及你的exoplayer实例

无论是在后台还是在后台,该应用程序都可以播放,但几分钟后,随着android试图释放资源,它最终会停止

实际上,通过服务做事情是非常好的,这样您就可以不用在活动主线程上执行繁重的任务而做很多事情

你只需要一个前台服务,它也需要一个特定频道的通知,你也可以制作媒体风格的通知,这样你就可以通过通知控制你的播放,甚至当屏幕被锁定时

本教程介绍如何使用服务

您为什么需要服务(引自此)

您应该仅在应用程序需要时使用前台服务 执行用户可以注意到的任务,即使用户没有注意到 直接与应用程序交互


根据您的一条评论,exoplayer在开发过程中似乎还很幸运,但我想说,一旦您将应用程序部署到不同的设备上,您可能需要重新考虑使用exoplayer活动或服务的方法。

我观看了视频。我不明白为什么我需要他创建的这个应用程序类。没有它一切都能正常工作。@Dinuclae那么我必须坚持你提供操作系统版本和设备详细信息,加上你在不使用服务的情况下得到的播放时间,我很高兴玩家仍然在播放,而我碰巧发现安卓系统杀死了活动和exoplayer实例。如果你没有从视频中得到太多帮助,那么我建议你检查oziomajnr的答案,他在那里发表了一篇关于服务和活动的非常好的文章,检查文章中层次金字塔正上方的陈述。我确实从视频中得到了帮助。一切正常。我得到了一项服务,即使我关闭了应用程序,我也会收到通知,可以再次按下并打开应用程序。我的问题是为什么我需要他创建的“App”类,因为没有它它也能正常工作。如果您记得他创建了一个服务,但也创建了一个应用程序类。@Dinuclae否您不需要创建该类扩展应用程序,您可以在服务中创建通知通道。