From e85c93c9461e44b0b72c719d86ba80620f4caaa3 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 22 Aug 2024 18:58:48 +0800 Subject: [PATCH] =?UTF-8?q?[1.0.0]=20[=E9=87=8D=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=A5=E6=BA=90]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wigets/media/MediaLoopPlayView.kt | 19 ++++++++++--------- .../wigets/media/MediaPlayerFragment.kt | 10 ++++++++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt index 2ca5207b4f..2d508bd2a4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt @@ -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() } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt index 3ff9250609..0c3ba2dc4f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerFragment.kt @@ -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) { + if(RxUtils.isNotDisposed(fisrtData)){ + return + } + fisrtData = RxUtils.createSubscribe(3_000) {} setHightPriorityMediaItem(list) } }