Android 停止播放器在后台播放视频
我正在使用exoplayer在recyclerview中播放视频。我从firebase中检索视频并在exoplayer中播放。但我面临的问题是所有视频都在后台同时播放,结果弄得一团糟。它还消耗大量数据。如果一旦视频完成播放,就不要重新开始。我怎样才能阻止他们在后台玩。这是我的密码Android 停止播放器在后台播放视频,android,kotlin,exoplayer,Android,Kotlin,Exoplayer,我正在使用exoplayer在recyclerview中播放视频。我从firebase中检索视频并在exoplayer中播放。但我面临的问题是所有视频都在后台同时播放,结果弄得一团糟。它还消耗大量数据。如果一旦视频完成播放,就不要重新开始。我怎样才能阻止他们在后台玩。这是我的密码 val uri = Uri.parse(contentDTOs[p1].videourl) val view = viewholder.findViewById<SimpleExoPlayerView&g
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()
}
val uri=uri.parse(contentDTOs[p1].videourl)
val view=viewholder.findViewById(R.id.detailviewitem\u视频内容)
val exoplayer=ExoPlayerFactory.newImpleInstance(上下文,轨迹选择器)
val datasourcefactory=DefaultHttpDataSourceFactory(“exoplayer”)
val extractorsFactory=DefaultExtractorsFactory()
val media=extractoremiasource(uri、datasourcefactory、extractorsFactory、null、null)
view.player=exoplayer
exoplayer.prepare(媒体)
exoplayer.playwhenrady=true
val loopingSource=LoopingMediaSource(媒体)
exoplayer.playwhenrady=true
exoplayer.prepare(循环源)
覆盖暂停(){
super.onPause()
停止
}
覆盖桌面上的乐趣(){
super.onStop()
停止
}
尝试将设置为playWhenReady=true
的行移动到onResume()
。不过,在onResume()
中使用.play()
而不是playWhenReady=true
可能更安全(对于您的用例来说,bug更少)。您应该释放播放器。要发布exoPlayer:
private void releasePlayer() {
if (player != null) {
player.release();
player = null;
}
}
从生命周期方法中调用releasePlayer
method,如下所示:
@Override
public void onPause() {
super.onPause();
if (Util.SDK_INT < 24) {
releasePlayer();
}
}
@Override
public void onStop() {
super.onStop();
if (Util.SDK_INT >= 24) {
releasePlayer();
}
}
@覆盖
公共无效暂停(){
super.onPause();
如果(Util.SDK_INT<24){
释放玩家();
}
}
@凌驾
公共void onStop(){
super.onStop();
如果(Util.SDK_INT>=24){
释放玩家();
}
}
我将如何使用.play()看看这个示例,那里使用了.play():很高兴能帮上忙no bro它还不能工作,我面临着这个问题