diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt index a76c75dd3a..923babdad9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt @@ -7,7 +7,8 @@ data class MediaItem( var fileUrl: String, var fileType: Int, var coverImageUrl: String, - var title: String + var title: String, + val isTemp:Boolean = false ) { companion object { const val MEDIA_TYPE_IMAGE = 1 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 45f9ff2453..bfa66383a2 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,6 +12,7 @@ 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.shuyu.gsyvideoplayer.listener.GSYSampleCallBack @@ -158,7 +159,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter mItemViewList.add(imageView) } else if (item.isVideoType()) { val videoView = AdvanceVideoView(mContext) - videoView.initVideoUrlData(item.fileUrl, item.coverImageUrl,item.priority) + videoView.initVideoUrlData(item.fileUrl, item.coverImageUrl,item.priority,item.isTemp) mItemViewList.add(videoView) } else { MediaPlayLogger.printErrorLog( "addItemView 不支持的文件类型:${item.fileType}") @@ -189,15 +190,34 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter } private fun startPlayHightPriorityMediaItem(isOnVideoError:Boolean){ + CallerLogger.d(TAG,"检测播放站点介绍") val currentPosition = mViewPager.currentItem if(mItemViewList.isEmpty()){ + CallerLogger.d(TAG,"view 没有初始化") return } if(hightPriorityMediaItem.size<1){ + CallerLogger.d(TAG,"站点视频播放结束没有了") val currentMediaItem = mDataList[currentPosition] // 恢复数据 重新播放 when (val itemView = mItemViewList[currentPosition]) { is AdvanceVideoView -> { + if(itemView.isTempPlayer){ + CallerLogger.d(TAG,"删除临时view 和data") + mItemViewList.remove(itemView) + var tempDeleteItem:MediaItem?=null + mDataList.forEach { + if(it.isTemp){ + tempDeleteItem = it + } + } + mDataList.remove(tempDeleteItem) + notifyDataSetChanged() + mViewPager.currentItem = 0 + mViewPager.setCurrentItem(0, true) + return + } + CallerLogger.d(TAG,"恢复原有视频播放信息") itemView.onVideoReset() if (isOnVideoError) { // 删除上一个缓存的视频 @@ -243,8 +263,22 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter return } } + CallerLogger.d(TAG,"没有视频VIew 创建临时View 和data") // 当前播放列表中没有视频 // TODO: 创建临时view去播放视频 + val mediaItem = MediaItem( + MediaItem.PrioritySite, + currentMediaItem.fileUrl, + MediaItem.MEDIA_TYPE_VIDEO, + "", + "", + true + ) + mDataList.add(mediaItem) + addItemView(mediaItem) + notifyDataSetChanged() + mViewPager.currentItem = 0 + mViewPager.setCurrentItem(mItemViewList.size-1, true) } else -> { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt index 494d938b3d..21170abe0d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt @@ -39,6 +39,8 @@ class AdvanceVideoView @JvmOverloads constructor( private var thumbnailImageUrl: String = "" private var videoUrl: String = "" private var priority:Int = MediaItem.PrioritySite + var isTempPlayer = false + private set private val downListener = object : IDownloadListener { override fun onStart(url: String) { @@ -122,6 +124,11 @@ class AdvanceVideoView @JvmOverloads constructor( containerLayout?.addView(videoPlayerView, videoPlayerViewLayoutParams) } + fun initVideoUrlData(videoUrl: String, thumbnailImageUrl: String,priority:Int,isTempPlayer:Boolean = false) { + this.isTempPlayer = isTempPlayer + initVideoUrlData(videoUrl,thumbnailImageUrl,priority) + } + /** * 初始化数据 */