[全是图片的情况下创建临时播放器item]
This commit is contained in:
yangyakun
2024-08-20 15:37:20 +08:00
parent a182ecaa07
commit e72fca23c4
3 changed files with 44 additions and 2 deletions

View File

@@ -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

View File

@@ -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 -> {

View File

@@ -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)
}
/**
* 初始化数据
*/