From add0ad88269a91a0a43d60617f561e1ec16942e1 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Tue, 19 Dec 2023 15:38:13 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A3=E4=BC=A0=E8=A7=86=E9=A2=91]=20feat:?= =?UTF-8?q?=20=E5=AE=A3=E4=BC=A0=E8=A7=86=E9=A2=91=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E7=BB=9F=E4=B8=80=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= =?UTF-8?q?TAG=EF=BC=8C=E5=85=B3=E9=94=AE=E6=97=A5=E5=BF=97=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E4=B8=8A=E4=BC=A0=E5=A4=A7=E6=95=B0=E6=8D=AE=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../charter/passenger/ui/video/VideoView.kt | 10 +-- .../wigets/media/MediaDataSourceManager.kt | 64 +++++++------------ .../wigets/media/MediaFileCacheManager.kt | 1 + .../module/wigets/media/MediaLoopPlayView.kt | 37 +++++------ .../module/wigets/media/MediaPlayLogger.kt | 44 +++++++++++++ .../wigets/media/MediaPlayerCustomView.kt | 23 ++++--- .../taxi/passenger/ui/video/InfoVideoView.kt | 12 ++-- 7 files changed, 110 insertions(+), 81 deletions(-) create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt index 6cc77986fd..0b4a79420f 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt @@ -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) { val isNewData = mediaList.isNotEmpty() - CallerLogger.d( - TAG, - "onMediaDataSourceChanged:isNewData=$isNewData, list=${GsonUtils.toJson(list)}" - ) + MediaPlayLogger.printInfoLog("onMediaDataSourceChanged:isNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}") val localMediaList = mutableListOf() 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() diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt index 535954b1f4..02c4b79ee9 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt @@ -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 { override fun onSuccess(data: MediaDataResp?) { mHasEverGetMediaDataFromMis = true - CallerLogger.e( - TAG, - "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,MediaData=${ + MediaPlayLogger.printInfoLog( + "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,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, - "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,更新数据" - ) + MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoop:success, 从管理后台获取到数据,数据有变化更新数据") } else { - CallerLogger.e( - TAG, - "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,数据无变化" - ) + MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoop:success, 从管理后台获取到数据,数据无变化无需更新") } } else { //请求成功获取到后台配置数据了,但是数据为空,此时为了有内容展示,还是使用本地数据更新播放 if (mLastMediaDataSourceList.isEmpty()) { val localAdDataList = getMediaDataFromLocalConfig() updateMediaDataSource(localAdDataList) + MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoop:success, 从管理后台获取到数据,返回数据为空,使用本地配置数据播放") } } + // 获取成功后,延迟5分钟再查询 UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 5 * 60 * 1000L) + MediaPlayLogger.printInfoLog("startGetMediaDataSourceLoop:success, 延迟5分钟后再次检查更新") } override fun onFail(code: Int, msg: String?) { - CallerLogger.e( - TAG, - "startGetMediaDataSourceLoop:failed, code=$code, msg=$msg" - ) + MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop:failed, code=$code, msg=$msg") mRetryCount++ val delay = if (mHasEverGetMediaDataFromMis) 5000L else 1000L UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, delay) + MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop:failed, 延迟${delay / 1000L}秒后再次请求") } override fun onError() { super.onError() - CallerLogger.e( - TAG, "startGetMediaDataSourceLoop:error, 网络异常" - ) + MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop:error, 网络异常") mRetryCount++ val delay = if (mHasEverGetMediaDataFromMis) 5000L else 1000L UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, delay) + MediaPlayLogger.printErrorLog("startGetMediaDataSourceLoop:error, 网络异常,延迟${delay / 1000L}秒后再次请求") } }) } @@ -200,9 +182,7 @@ object MediaDataSourceManager { } private fun getMediaDataFromMis(callback: OchCommonServiceCallback) { - 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}") } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt index 9d10106a5e..259e1daaae 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt @@ -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) } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt index 922cfa01dc..af68e0398b 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt @@ -43,7 +43,7 @@ class MediaLoopPlayView @JvmOverloads constructor( pagerAdapter?.setMediaData(list) } - fun setNewMediaData(list: MutableList){ + fun setNewMediaData(list: MutableList) { pagerAdapter?.setNewMediaData(list) } @@ -77,6 +77,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter private var mDataList = mutableListOf() private var mItemViewList = mutableListOf() + //新的数据,在轮播下一次切换的时机完成整体数据的更新 private val mNewDataList: MutableList = mutableListOf() @@ -85,7 +86,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter fun setMediaData(list: MutableList) { 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){ + fun setNewMediaData(list: MutableList) { 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 } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt new file mode 100644 index 0000000000..2fdb2c88c9 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt @@ -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 = HashMap() + map["level"] = level + map["msg"] = msg + MogoAnalyticUtils.track( + MEDIA_PLAY_PROCESS_KEY_NODE_LOG, + map + ) + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt index 8b97773683..247966aac8 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt @@ -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("downListener,percent=$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?) { diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/InfoVideoView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/InfoVideoView.kt index 519c3d788e..33cf797af8 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/InfoVideoView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/InfoVideoView.kt @@ -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) { val isNewData = mediaList.isNotEmpty() - CallerLogger.d( - TAG, - "onMediaDataSourceChanged:isNewData=$isNewData, list=${GsonUtils.toJson(list)}" - ) + MediaPlayLogger.printInfoLog("onMediaDataSourceChanged:isNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}") val localMediaList = mutableListOf() 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() {