[宣传视频] feat: 宣传视频相关的统一日志打印TAG,关键日志统一上传大数据平台;

This commit is contained in:
aibingbing
2023-12-19 15:38:13 +08:00
parent 365bd4ca2e
commit add0ad8826
7 changed files with 110 additions and 81 deletions

View File

@@ -24,6 +24,7 @@ import com.mogo.och.common.module.wigets.media.IMediaDataSourceListener
import com.mogo.och.common.module.wigets.media.MediaDataSourceManager
import com.mogo.och.common.module.wigets.media.MediaFileCacheManager
import com.mogo.och.common.module.wigets.media.MediaItem
import com.mogo.och.common.module.wigets.media.MediaPlayLogger
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView
import kotlinx.android.synthetic.main.charter_p_video_fragment.view.rvVideoPlaylist
import kotlin.math.floor
@@ -80,6 +81,7 @@ class VideoView @JvmOverloads constructor(
}
}
prePlayerPosition = centerItemPosition
MediaPlayLogger.printInfoLog("pageSelect, currentPosition=$prePlayerPosition")
}
override fun pageStop() {
@@ -125,10 +127,7 @@ class VideoView @JvmOverloads constructor(
MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener {
override fun onMediaDataSourceChanged(list: List<MediaItem>) {
val isNewData = mediaList.isNotEmpty()
CallerLogger.d(
TAG,
"onMediaDataSourceChangedisNewData=$isNewData, list=${GsonUtils.toJson(list)}"
)
MediaPlayLogger.printInfoLog("onMediaDataSourceChangedisNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}")
val localMediaList = mutableListOf<TaxiPassengerVideoPlay>()
list.forEach {
val taxiPassengerVideoPlay = TaxiPassengerVideoPlay(
@@ -142,12 +141,14 @@ class VideoView @JvmOverloads constructor(
if (isNewData) {
if (!isVisible) {
updateMediaListDataAndView(localMediaList)
MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新")
} else {
mNewMediaList.clear()
mNewMediaList.addAll(localMediaList)
}
} else {
updateMediaListDataAndView(localMediaList)
MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新")
}
}
})
@@ -193,6 +194,7 @@ class VideoView @JvmOverloads constructor(
if (mNewMediaList.isNotEmpty()) {
updateMediaListDataAndView(mNewMediaList)
mNewMediaList.clear()
MediaPlayLogger.printInfoLog("onVisibilityChanged, 宣传视频数据已更新")
}
} catch (e: Exception) {
e.printStackTrace()

View File

@@ -10,7 +10,6 @@ import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
@@ -32,7 +31,7 @@ import java.util.concurrent.ConcurrentHashMap
* 如果无网络或无司机SN或请求异常 失败5次后立马使用第二优先级本地数据播放
* 失败尝试时间间隔1秒
* 2.第二优先级:使用本地数据播放
* 3.请求管理后台数据成功后:间隔10分钟再次检查
* 3.请求管理后台数据成功后:间隔5分钟再次检查
*/
object MediaDataSourceManager {
private val TAG = MediaDataSourceManager::class.java.simpleName
@@ -77,17 +76,12 @@ object MediaDataSourceManager {
mMediaDataSourceListenerMap[tag] = dataSourceListener
}
val isSassProject = isSassProject()
CallerLogger.i(
TAG,
"init, 初始化环境 isSassProject=$isSassProject"
)
MediaPlayLogger.printInfoLog("init, 初始化环境 isSassProject=$isSassProject")
if (isSassProject) {
MediaPlayLogger.printInfoLog("init, 开始检查后台配置数据")
startGetMediaDataSourceLoop()
} else {
CallerLogger.i(
TAG,
"init, 使用本地配置数据"
)
MediaPlayLogger.printInfoLog("init, 使用本地配置数据初始化")
//非Sass环境下后端没有实现可配置默认只走本地配置
val localAdDataList = getMediaDataFromLocalConfig()
updateMediaDataSource(localAdDataList)
@@ -95,6 +89,7 @@ object MediaDataSourceManager {
}
fun unInit(tag: String) {
MediaPlayLogger.printInfoLog("unInit")
removeGetMediaDataSourceLoop()
if (mMediaDataSourceListenerMap.containsKey(tag)) {
mMediaDataSourceListenerMap.remove(tag)
@@ -110,28 +105,22 @@ object MediaDataSourceManager {
@SuppressLint("MissingPermission")
private fun startGetMediaDataSourceLoop() {
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoop, 开始执行后台配置数据检查")
removeGetMediaDataSourceLoop()
// 失败5次且从来没有从MIS获取配置信息成功过先试用本地数据播放
if (mRetryCount == RETRY_MAX_COUNT && !mHasEverGetMediaDataFromMis) {
val localAdDataList = getMediaDataFromLocalConfig()
updateMediaDataSource(localAdDataList)
CallerLogger.e(
TAG,
"startGetMediaDataSourceLoop失败${mRetryCount}次,先使用本地数据播放"
)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop失败${mRetryCount}次,先使用本地数据播放")
}
if (driverSn.isBlank()) {
CallerLogger.e(
TAG, "startGetMediaDataSourceLoop司机屏sn为空跳过本次查询"
)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop司机屏sn为空跳过本次查询")
mRetryCount++
UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 1000L)
return
}
if (!NetworkUtils.isConnected()) {
CallerLogger.e(
TAG, "startGetMediaDataSourceLoop当前无网络跳过本次查询"
)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop当前无网络跳过本次查询")
mRetryCount++
UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 1000L)
return
@@ -139,9 +128,8 @@ object MediaDataSourceManager {
getMediaDataFromMis(object : OchCommonServiceCallback<MediaDataResp> {
override fun onSuccess(data: MediaDataResp?) {
mHasEverGetMediaDataFromMis = true
CallerLogger.e(
TAG,
"startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据MediaData=${
MediaPlayLogger.printInfoLog(
"startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据MediaSize=${data?.data?.size}, MediaData=${
GsonUtils.toJson(
data
)
@@ -152,45 +140,39 @@ object MediaDataSourceManager {
if (newDataList.isNotEmpty()) {
if (compareMediaDataSource(newDataList)) {
updateMediaDataSource(newDataList)
CallerLogger.e(
TAG,
"startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,更新数据"
)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,数据有变化更新数据")
} else {
CallerLogger.e(
TAG,
"startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,数据无变化"
)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,数据无变化无需更新")
}
} else {
//请求成功获取到后台配置数据了,但是数据为空,此时为了有内容展示,还是使用本地数据更新播放
if (mLastMediaDataSourceList.isEmpty()) {
val localAdDataList = getMediaDataFromLocalConfig()
updateMediaDataSource(localAdDataList)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 从管理后台获取到数据,返回数据为空,使用本地配置数据播放")
}
}
// 获取成功后延迟5分钟再查询
UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 5 * 60 * 1000L)
MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoopsuccess, 延迟5分钟后再次检查更新")
}
override fun onFail(code: Int, msg: String?) {
CallerLogger.e(
TAG,
"startGetMediaDataSourceLoopfailed, code=$code, msg=$msg"
)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoopfailed, code=$code, msg=$msg")
mRetryCount++
val delay = if (mHasEverGetMediaDataFromMis) 5000L else 1000L
UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, delay)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoopfailed, 延迟${delay / 1000L}秒后再次请求")
}
override fun onError() {
super.onError()
CallerLogger.e(
TAG, "startGetMediaDataSourceLooperror, 网络异常"
)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLooperror, 网络异常")
mRetryCount++
val delay = if (mHasEverGetMediaDataFromMis) 5000L else 1000L
UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, delay)
MediaPlayLogger.printErrorLog("startGetMediaDataSourceLooperror, 网络异常,延迟${delay / 1000L}秒后再次请求")
}
})
}
@@ -200,9 +182,7 @@ object MediaDataSourceManager {
}
private fun getMediaDataFromMis(callback: OchCommonServiceCallback<MediaDataResp>) {
CallerLogger.d(
TAG, "getMediaDataFromMis准备发送请求driverSn=$driverSn"
)
MediaPlayLogger.printInfoLog("getMediaDataFromMis准备发送请求driverSn=$driverSn")
mNetworkService.queryMediaDataFromMis(
sn = driverSn,
screenType = "2",
@@ -219,6 +199,7 @@ object MediaDataSourceManager {
} catch (e: Exception) {
e.printStackTrace()
}
MediaPlayLogger.printInfoLog("getMediaDataFromLocalConfig, 获取本地配置数据dataSize=${localAdDataList.size}")
return localAdDataList
}
@@ -249,6 +230,7 @@ object MediaDataSourceManager {
val listener = it.value
listener.onMediaDataSourceChanged(newDataList)
}
MediaPlayLogger.printInfoLog("下发新MediaData给监听者dataSize=${newDataList.size}")
}
}

View File

@@ -24,6 +24,7 @@ object MediaFileCacheManager {
*/
fun createFileCacheDir(context: Context): Boolean {
val cacheDirPath = getFileCacheDir(context)
MediaPlayLogger.printInfoLog("createFileCacheDir dirPath=$cacheDirPath")
return com.mogo.eagle.core.utilcode.util.FileUtils.createFileDir(cacheDirPath)
}

View File

@@ -43,7 +43,7 @@ class MediaLoopPlayView @JvmOverloads constructor(
pagerAdapter?.setMediaData(list)
}
fun setNewMediaData(list: MutableList<MediaItem>){
fun setNewMediaData(list: MutableList<MediaItem>) {
pagerAdapter?.setNewMediaData(list)
}
@@ -77,6 +77,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
private var mDataList = mutableListOf<MediaItem>()
private var mItemViewList = mutableListOf<View>()
//新的数据,在轮播下一次切换的时机完成整体数据的更新
private val mNewDataList: MutableList<MediaItem> = mutableListOf()
@@ -85,7 +86,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
fun setMediaData(list: MutableList<MediaItem>) {
if (list.isEmpty()) {
CallerLogger.d(MediaLoopPlayView.TAG, "setMediaData, list为空")
MediaPlayLogger.printInfoLog( "setMediaData, list为空")
return
}
@@ -105,7 +106,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
}
fun setNewMediaData(list: MutableList<MediaItem>){
fun setNewMediaData(list: MutableList<MediaItem>) {
mNewDataList.clear()
mNewDataList.addAll(list)
}
@@ -124,7 +125,6 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
@@ -147,7 +147,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
videoView.initVideoUrlData(item.fileUrl, item.coverImageUrl)
mItemViewList.add(videoView)
} else {
CallerLogger.d(MediaLoopPlayView.TAG, "addItemView 不支持的文件类型:${item.fileType}")
MediaPlayLogger.printErrorLog( "addItemView 不支持的文件类型:${item.fileType}")
}
}
@@ -160,26 +160,17 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
val currentPosition = mViewPager.currentItem
val currentMediaItem = mDataList[currentPosition]
if (mItemViewList[currentPosition] is AdvanceVideoView) {
CallerLogger.d(
MediaLoopPlayView.TAG,
"startLoopPlay: AdvanceVideoView, url=${currentMediaItem.fileUrl}"
)
MediaPlayLogger.printInfoLog("startLoopPlay: AdvanceVideoView, url=${currentMediaItem.fileUrl}")
val videoView = mItemViewList[currentPosition] as AdvanceVideoView
videoView.setThumbImageViewVisible()
videoView.startPlayVideo(videoPlayLifecycleCallBack)
} else if (mItemViewList[currentPosition] is AdvanceImageView) {
CallerLogger.d(
MediaLoopPlayView.TAG,
"startLoopPlay: AdvanceImageView, url=${currentMediaItem.fileUrl}"
)
MediaPlayLogger.printInfoLog("startLoopPlay: AdvanceImageView, url=${currentMediaItem.fileUrl}")
val imageView = mItemViewList[currentPosition] as AdvanceImageView
imageView.displayImage()
startImageCountDownTimer()
} else {
CallerLogger.d(
MediaLoopPlayView.TAG,
"startLoopPlay 不支持的文件类型:${currentMediaItem.fileType}, url=${currentMediaItem.fileUrl}"
)
MediaPlayLogger.printErrorLog("startLoopPlay 不支持的文件类型:${currentMediaItem.fileType}, url=${currentMediaItem.fileUrl}")
}
}
@@ -215,10 +206,11 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
override fun onFinish() {
CallerLogger.d(MediaLoopPlayView.TAG, "mImageCountDownTimer倒计时秒, onFinish")
MediaPlayLogger.printInfoLog( "mImageCountDownTimer, 倒计时${IMAGE_COUNT_DOWN_SECONDS}秒, onFinish")
playNextItemView(false)
}
}.start()
MediaPlayLogger.printInfoLog("mImageCountDownTimer, 开始倒计时 ${IMAGE_COUNT_DOWN_SECONDS}")
}
private fun cancelImageCountDownTimer() {
@@ -237,16 +229,15 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
setMediaData(mNewDataList)
mNewDataList.clear()
ToastUtils.showShort("宣传视频数据已更新")
MediaPlayLogger.printInfoLog("playNextItemView, 宣传视频数据已更新")
return
}
MediaPlayLogger.printInfoLog("playNextItemView")
val currentPosition = mViewPager.currentItem
val currentMediaItem = mDataList[currentPosition]
val currentItemView = mItemViewList[currentPosition]
CallerLogger.d(
MediaLoopPlayView.TAG,
"playNextItemView, currentPosition=$currentPosition, type=${currentMediaItem.fileType}, url=${currentMediaItem.fileUrl}"
)
MediaPlayLogger.printInfoLog("playNextItemView, currentPosition=$currentPosition, type=${currentMediaItem.fileType}, url=${currentMediaItem.fileUrl}")
if (currentItemView is AdvanceVideoView) {
currentItemView.onVideoReset()
//videoView.setCacheImageViewVisible()
@@ -271,6 +262,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
fun setPause() {
MediaPlayLogger.printInfoLog("${MediaLoopPlayView.TAG}, setPause")
if (mItemViewList.size <= 0) {
return
}
@@ -284,6 +276,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
}
fun setResume() {
MediaPlayLogger.printInfoLog("${MediaLoopPlayView.TAG}, setResume")
if (mItemViewList.size <= 0) {
return
}

View File

@@ -0,0 +1,44 @@
package com.mogo.och.common.module.wigets.media
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
object MediaPlayLogger {
const val TAG = "MediaPlayLogger"
private const val MEDIA_PLAY_PROCESS_KEY_NODE_LOG =
"och.media.play.process.key.node.log"
fun printInfoLog(msg: String) {
CallerLogger.i(TAG, msg)
trackEvent("Info", msg)
}
fun printWarnLog(msg: String) {
CallerLogger.w(TAG, msg)
trackEvent("Warn", msg)
}
fun printErrorLog(msg: String) {
CallerLogger.e(TAG, msg)
trackEvent("Error", msg)
}
/**
* 上报埋点
*/
private fun trackEvent(level: String, msg: String) {
ProcessLifecycleOwner.get().lifecycleScope.launch(Dispatchers.IO) {
val map: MutableMap<String, Any> = HashMap()
map["level"] = level
map["msg"] = msg
MogoAnalyticUtils.track(
MEDIA_PLAY_PROCESS_KEY_NODE_LOG,
map
)
}
}
}

View File

@@ -7,6 +7,7 @@ import android.widget.RelativeLayout
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.mogo.eagle.core.utilcode.download.callback.IDownloadListener
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.FileUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
@@ -15,6 +16,7 @@ import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
import com.mogo.och.common.module.R
import com.mogo.och.common.module.wigets.media.MediaFileCacheManager
import com.mogo.och.common.module.wigets.media.MediaLoopPlayView
import com.mogo.och.common.module.wigets.media.MediaPlayLogger
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
import com.shuyu.gsyvideoplayer.utils.GSYVideoType
@@ -43,10 +45,14 @@ class AdvanceVideoView @JvmOverloads constructor(
}
override fun onProgress(url: String, downloaded: Long, total: Long) {
val percent = (downloaded * 100 / total).toInt()
Logger.d(
MediaLoopPlayView.TAG,
"video play download, onProgress= ${(downloaded * 100 / total).toInt()}"
"video play download, onProgress= ${percent}"
)
if (percent % 10 == 0) {
MediaPlayLogger.printInfoLog("downListenerpercent=$percent, downloadUrl=${videoUrl}")
}
}
override fun onFinished(url: String, path: String) {
@@ -57,6 +63,7 @@ class AdvanceVideoView @JvmOverloads constructor(
ThreadUtils.runOnUiThread {
startPlay(Uri.fromFile(File(path)).toString())
}
MediaPlayLogger.printInfoLog("download finished, 开始播放downloadUrl=${videoUrl}")
} else {//如果当前文件不存在再次去下载当前的
Logger.d(
MediaLoopPlayView.TAG,
@@ -67,6 +74,7 @@ class AdvanceVideoView @JvmOverloads constructor(
ThreadUtils.runOnUiThread {
startPlay(Uri.fromFile(File(path)).toString())
}
MediaPlayLogger.printInfoLog("download finished, 开始播放downloadUrl=${videoUrl}")
} else {
startDownLoadVideoFile()
}
@@ -75,6 +83,7 @@ class AdvanceVideoView @JvmOverloads constructor(
override fun onError(url: String, error: String?) {
Logger.d(MediaLoopPlayView.TAG, "video play download, onError msg=$error")
MediaPlayLogger.printErrorLog("download error, 准备重新下载downloadUrl=${videoUrl}")
//出错再次下载
startDownLoadVideoFile()
}
@@ -127,15 +136,11 @@ class AdvanceVideoView @JvmOverloads constructor(
val localVideoCacheFilePath = MediaFileCacheManager.getCacheFileFullPathByUrl(
context, this.videoUrl
)
Logger.d(
MediaLoopPlayView.TAG, "本地已经有缓存文件准备开始播放videoPath=${
localVideoCacheFilePath
}"
)
MediaPlayLogger.printInfoLog("本地已经有缓存文件准备开始播放videoPath=${localVideoCacheFilePath}")
val realUri = Uri.fromFile(File(localVideoCacheFilePath)).toString()
setThumbImageViewGone()
startPlay(realUri)
Logger.d(
CallerLogger.d(
MediaLoopPlayView.TAG, "播放视频videoUri=$realUri"
)
} else {
@@ -155,6 +160,7 @@ class AdvanceVideoView @JvmOverloads constructor(
setThumbImageViewVisible()
startDownLoadVideoFile()
MediaPlayLogger.printInfoLog("本地无缓存文件准备下载downloadUrl=${this.videoUrl}")
}
}
@@ -172,7 +178,7 @@ class AdvanceVideoView @JvmOverloads constructor(
private fun startDownLoadVideoFile() {
//下载视频,下载成功后再播放
Logger.d(MediaLoopPlayView.TAG, "startDownLoadVideoFile")
MediaPlayLogger.printInfoLog( "startDownLoadVideoFile, downloadUrl=${this.videoUrl}")
MediaFileCacheManager.downloadFile(
context,
videoUrl,
@@ -185,6 +191,7 @@ class AdvanceVideoView @JvmOverloads constructor(
if (FileUtils.isFileExists(localVideoPath)) {
FileUtils.delete(localVideoPath)
}
MediaPlayLogger.printInfoLog( "clearLocalErrorVideo, localPath=${localVideoPath}")
}
fun startPlay(localVideoPath: String?) {

View File

@@ -17,6 +17,7 @@ import com.mogo.och.common.module.wigets.media.IMediaDataSourceListener
import com.mogo.och.common.module.wigets.media.MediaDataSourceManager
import com.mogo.och.common.module.wigets.media.MediaFileCacheManager
import com.mogo.och.common.module.wigets.media.MediaItem
import com.mogo.och.common.module.wigets.media.MediaPlayLogger
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay
import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager
@@ -79,10 +80,7 @@ internal class InfoVideoView @JvmOverloads constructor(
MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener {
override fun onMediaDataSourceChanged(list: List<MediaItem>) {
val isNewData = mediaList.isNotEmpty()
CallerLogger.d(
TAG,
"onMediaDataSourceChangedisNewData=$isNewData, list=${GsonUtils.toJson(list)}"
)
MediaPlayLogger.printInfoLog("onMediaDataSourceChangedisNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}")
val localMediaList = mutableListOf<TaxiPassengerVideoPlay>()
list.forEach {
val taxiPassengerVideoPlay = TaxiPassengerVideoPlay(
@@ -96,12 +94,14 @@ internal class InfoVideoView @JvmOverloads constructor(
if (isNewData) {
if (!isVisible) {
updateMediaListDataAndView(localMediaList)
MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新")
} else {
mNewMediaList.clear()
mNewMediaList.addAll(localMediaList)
}
} else {
updateMediaListDataAndView(localMediaList)
MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新")
}
}
})
@@ -148,6 +148,7 @@ internal class InfoVideoView @JvmOverloads constructor(
if (mNewMediaList.isNotEmpty()) {
updateMediaListDataAndView(mNewMediaList)
mNewMediaList.clear()
MediaPlayLogger.printInfoLog("onVisibilityChanged, 宣传视频数据已更新")
}
} catch (e: Exception) {
e.printStackTrace()
@@ -198,6 +199,7 @@ internal class InfoVideoView @JvmOverloads constructor(
}
}
prePlayerPosition = centerItemPosition
MediaPlayLogger.printInfoLog("pageSelect, currentPosition=$prePlayerPosition")
}
override fun pageStop() {
@@ -206,7 +208,6 @@ internal class InfoVideoView @JvmOverloads constructor(
player.onVideoPause()
}
}
})
carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition ->
val fl = adapterPosition - floor(adapterPosition)
@@ -250,7 +251,6 @@ internal class InfoVideoView @JvmOverloads constructor(
player.onVideoPause()
}
}
}
override fun onDetachedFromWindow() {