【问题标题】:How do I make Exoplayer keeps on running in background?如何让 Exoplayer 一直在后台运行?
【发布时间】:2020-08-02 02:55:44
【问题描述】:

我正在使用 Android Kotlin 中的 Exoplayer 创建一个简单的音乐播放器。 (播放存储中的本地 MP3)

问题是播放音乐在应用程序之外停止,如果手机打开睡眠模式。 所以,我尝试实现前台服务,但没有成功。

下面是我的代码,没有我尝试实现前台服务的部分。

请告诉我如何解决此问题或如何正确实施前台服务。


类 AudioviewActivity : AppCompatActivity() {

private var player: SimpleExoPlayer? = null
private var playbackPosition = 0L
private var currentWindow = 0
private var playWhenReady = false

override fun onBackPressed() {
    super.onBackPressed()
    player!!.stop()
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_audioview)

}

private fun initializePlayer() {
    if (player == null) {
        player = ExoPlayerFactory.newSimpleInstance(this)

        val userAgent = Util.getUserAgent(this, "Mymusicplayer")
        val mediaSource = ExtractorMediaSource(
            Uri.parse("asset:///trackone.mp3"),
            DefaultDataSourceFactory(this, userAgent), DefaultExtractorsFactory(),
            null, null)

        player!!.prepare(mediaSource)
        player!!.seekTo(currentWindow, playbackPosition)
        player!!.playWhenReady = playWhenReady
        player!!.repeatMode = SimpleExoPlayer.REPEAT_MODE_ONE
    }
}

private fun releasePlayer() {
    player?.let {
        playbackPosition = it.currentPosition
        currentWindow = it.currentWindowIndex
        playWhenReady = it.playWhenReady
        it.release()
        player = null
    }
}

override fun onResume() {
    super.onResume()
    initializePlayer()
}

override fun onRestart() {
    super.onRestart()
    initializePlayer()
}

override fun onStop() {
    super.onStop()
    releasePlayer()
}

}

【问题讨论】:

  • 不要在onstop中释放播放器
  • @Wahdat Kashmiri - 它对我有用。这是最简单的方法,让它成为我想要的。谢谢!
  • 我建议为您的应用添加前台服务

标签: android kotlin


【解决方案1】:

由于您在 Onstop 中释放播放器,因此当您的应用进入后台时,将调用 Onstop 并且您正在释放播放器,因此不要在 OnStop() 中释放播放器,请删除该部分代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2013-10-15
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多