首页 > 解决方案 > 停止 exoplayer 在后台播放视频

问题描述

我正在使用 exoplayer 在 recyclerview 中播放视频。我从 firebase 检索视频并在 exoplayer 中播放。但我面临的问题是所有视频在后台同时播放并且搞砸了。它还消耗大量数据。如果一旦视频完成播放,它就不会重新开始。我怎样才能阻止他们在后台播放。这是我的代码

val uri = Uri.parse(contentDTOs[p1].videourl)
    val view = viewholder.findViewById<SimpleExoPlayerView>(R.id.detailviewitem_video_contents)
    val exoplayer= ExoPlayerFactory.newSimpleInstance(context,trackSelector)
    val datasourcefactory = DefaultHttpDataSourceFactory("exoplayer")
    val extractorsFactory=DefaultExtractorsFactory()
    val media = ExtractorMediaSource(uri,datasourcefactory,extractorsFactory,null,null)
    view.player = exoplayer
    exoplayer.prepare(media)
    exoplayer.playWhenReady = true
    val loopingSource = LoopingMediaSource(media)
    exoplayer.playWhenReady = true
    exoplayer.prepare(loopingSource)

override fun onPause() {
    super.onPause()
    exoplayer.stop()
}
override fun onStop() {
    super.onStop()
    exoplayer.stop()
}

标签: androidkotlinexoplayer

解决方案


尝试移动设置playWhenReady = trueonResume(). 不过,使用.play()而不是playWhenReady = trueinonResume()可能更安全(对您的用例来说错误更少)。


推荐阅读