android - 停止 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()
}
解决方案
尝试移动设置playWhenReady = true
为onResume()
. 不过,使用.play()
而不是playWhenReady = true
inonResume()
可能更安全(对您的用例来说错误更少)。
推荐阅读
- google-bigquery - Bigquery 中的 ARRAY OF STRUCT 中的 DISTINCT
- javascript - vueJS,超时不等待计时器
- c++ - 如何在 Qt 中正确中止网络请求?
- r - R:ggplot - 使用 geom_raster 和 facet_wrap
- python - 为什么我的索引代码在列表中找不到项目?
- python - 如何为字符串中的单词创建单词长度列表?
- javascript - 如何在 Typescript 中以适当的方式动态创建类?
- python - 如何使用 urllib 修复 SSL 证书错误?
- javascript - ajax 函数的这些参数是如何工作的?
- javascript - Three.js:将 RawShaderMaterial 与 LineSegments 一起使用