[重复数据来源]
This commit is contained in:
yangyakun
2024-08-22 18:58:48 +08:00
parent f022446ef3
commit e85c93c946
2 changed files with 18 additions and 11 deletions

View File

@@ -12,9 +12,9 @@ import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.CountDownTimer
import com.mogo.eagle.core.utilcode.util.TAG
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.wigets.media.MediaLoopPlayView.Companion.IMAGE_COUNT_DOWN_SECONDS
import com.mogo.och.common.module.wigets.media.MediaLoopPlayView.Companion.TAG
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
class MediaLoopPlayView @JvmOverloads constructor(
@@ -123,7 +123,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
if(list.isEmpty()){
return
}
startPlayHightPriorityMediaItem(false)
startPlayHightPriorityMediaItem(false,1)
}
override fun getCount(): Int {
@@ -189,8 +189,8 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
}
private fun startPlayHightPriorityMediaItem(isOnVideoError:Boolean){
CallerLogger.d(TAG,"检测播放站点介绍")
private fun startPlayHightPriorityMediaItem(isOnVideoError:Boolean,who:Int){
CallerLogger.d(TAG,"检测播放站点介绍:$who")
val currentPosition = mViewPager.currentItem
if(mItemViewList.isEmpty()){
CallerLogger.d(TAG,"view 没有初始化")
@@ -217,7 +217,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
mViewPager.setCurrentItem(0, true)
return
}
CallerLogger.d(TAG,"恢复原有视频播放信息")
CallerLogger.d(TAG,"恢复原有视频播放信息${currentMediaItem}")
itemView.onVideoReset()
if (isOnVideoError) {
// 删除上一个缓存的视频
@@ -260,6 +260,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
// 广告中有视频播放器
if(mediaItem.fileType==MediaItem.MEDIA_TYPE_VIDEO){
mViewPager.post {
mViewPager.currentItem = index
mViewPager.setCurrentItem(index, true)
}
return
@@ -279,7 +280,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
mDataList.add(mediaItem)
addItemView(mediaItem)
notifyDataSetChanged()
mViewPager.currentItem = 0
mViewPager.currentItem = mItemViewList.size-1
mViewPager.setCurrentItem(mItemViewList.size-1, true)
}
@@ -297,13 +298,13 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
override fun onAutoComplete(url: String?, vararg objects: Any?) {
CallerLogger.d(MediaLoopPlayView.TAG, "onAutoComplete")
startPlayHightPriorityMediaItem(false)
startPlayHightPriorityMediaItem(false,3)
}
override fun onPlayError(url: String?, vararg objects: Any?) {
super.onPlayError(url, *objects)
CallerLogger.d(MediaLoopPlayView.TAG, "onPlayError, error=${objects}")
startPlayHightPriorityMediaItem(true)
startPlayHightPriorityMediaItem(true,4)
}
}
@@ -438,7 +439,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
)
if (mItemViewList.size > 1) { //多于1才会循环跳转
if(hightPriorityMediaItem.size>0){
startPlayHightPriorityMediaItem(false)
startPlayHightPriorityMediaItem(false,5)
}else {
startLoopPlay()
}

View File

@@ -3,10 +3,8 @@ package com.mogo.och.common.module.wigets.media
import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.function.main.MainMoGoApplication
import com.mogo.eagle.core.utilcode.download.callback.IDownloadListener
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
@@ -14,7 +12,9 @@ import com.mogo.och.common.module.R
import com.mogo.och.common.module.biz.media.IMediaDispatch
import com.mogo.och.common.module.biz.media.MediaManager
import com.mogo.och.common.module.manager.download.DownloadManager
import com.mogo.och.common.module.utils.RxUtils
import com.shuyu.gsyvideoplayer.GSYVideoManager
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.main.fragment_video_player.acb_add_site_video
import kotlinx.android.synthetic.main.fragment_video_player.imageVideoRotationView
@@ -104,7 +104,13 @@ class MediaPlayerFragment :
super.onDestroy()
}
private var fisrtData: Disposable? = null
override fun diapatchMedia(list: MutableList<MediaItem>) {
if(RxUtils.isNotDisposed(fisrtData)){
return
}
fisrtData = RxUtils.createSubscribe(3_000) {}
setHightPriorityMediaItem(list)
}
}