[1.0.0]
[全是图片的情况下创建临时播放器item]
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 -> {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user