[8.2.0]
[广告B1] [播放广告+插播站点视频]
This commit is contained in:
@@ -2,24 +2,12 @@ package com.mogo.och.biz.media.video
|
||||
|
||||
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.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.media.MediaServiceManager
|
||||
import com.mogo.och.common.module.biz.media.IVideoListener
|
||||
import com.mogo.och.common.module.biz.media.MediaManager
|
||||
import com.mogo.och.common.module.biz.media.data.MediaItem
|
||||
import com.mogo.och.common.module.manager.download.DownloadManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||
import io.reactivex.disposables.Disposable
|
||||
import kotlinx.android.synthetic.main.biz_fragment_video_player.acb_add_site_video
|
||||
import kotlinx.android.synthetic.main.biz_fragment_video_player.imageVideoRotationView
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
@@ -32,8 +20,6 @@ class VideoPlayerFragment :
|
||||
private val TAG = VideoPlayerFragment::class.java.simpleName
|
||||
}
|
||||
|
||||
private var arrayListOf = mutableListOf<MediaItem>()
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.biz_fragment_video_player
|
||||
}
|
||||
@@ -53,83 +39,32 @@ class VideoPlayerFragment :
|
||||
siteList.add(MediaItem(MediaItem.PrioritySite,"https://img.zhidaozhixing.com/fileServer/online_car_hailing/1676357557335/3.mp4",MediaItem.MEDIA_TYPE_VIDEO,"","title"))
|
||||
setHightPriorityMediaItem(siteList)
|
||||
}
|
||||
MediaServiceManager.invokeCreateCacheFileDir()
|
||||
MediaManager.addListener(TAG,this)
|
||||
MediaDataSourceManager.init()
|
||||
}
|
||||
|
||||
override fun onMediaDataSourceChanged(list: List<MediaItem>) {
|
||||
val isNewData = arrayListOf.isNotEmpty()
|
||||
CallerLogger.d(
|
||||
TAG,
|
||||
"onMediaDataSourceChanged:isNewData=$isNewData, list=${GsonUtils.toJson(list)}"
|
||||
)
|
||||
arrayListOf.clear()
|
||||
arrayListOf.addAll(list)
|
||||
UiThreadHandler.post {
|
||||
if (isNewData) {
|
||||
imageVideoRotationView?.setNewMediaData(arrayListOf)
|
||||
} else {
|
||||
imageVideoRotationView?.setMediaData(arrayListOf)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setHightPriorityMediaItem(list: MutableList<MediaItem>){
|
||||
context?.let {context->
|
||||
val cacheList = list.filter {
|
||||
if(!MediaFileCacheManager.isLocalCacheFileExists(context, it.fileUrl)){
|
||||
DownloadManager.downloadVideoFile(it.fileUrl,null)
|
||||
}
|
||||
MediaFileCacheManager.isLocalCacheFileExists(context, it.fileUrl)
|
||||
}
|
||||
ThreadUtils.runOnUiThread {
|
||||
imageVideoRotationView.setsetHightPriorityMediaItem(cacheList.toMutableList())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MediaManager.postSiteIntroduceInfo(list)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
imageVideoRotationView.setPause()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
imageVideoRotationView.setResume()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
MediaDataSourceManager.unInit()
|
||||
GSYVideoManager.releaseAllVideos()
|
||||
MediaManager.removeListener(TAG)
|
||||
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)
|
||||
}
|
||||
|
||||
override fun setMediaPause() {
|
||||
super.setMediaPause()
|
||||
BizLoopManager.runInMainThread{
|
||||
imageVideoRotationView.setPause()
|
||||
}
|
||||
}
|
||||
|
||||
override fun setMediaResume() {
|
||||
super.setMediaResume()
|
||||
BizLoopManager.runInMainThread {
|
||||
imageVideoRotationView.setResume()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,17 +3,15 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<!-- 图片或视频广告-->
|
||||
<com.mogo.och.biz.media.video.MediaLoopPlayView
|
||||
android:id="@+id/imageVideoRotationView"
|
||||
|
||||
<com.mogo.och.biz.media.video.ads.AdMediaView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/acb_add_site_video"
|
||||
android:text="添加视频"
|
||||
android:gravity="center"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_width="@dimen/dp_100"
|
||||
|
||||
Reference in New Issue
Block a user