From 03963e18f30e3339f4c3f8688059e128bdf81ae1 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 22 Jul 2025 17:44:00 +0800 Subject: [PATCH] =?UTF-8?q?[8.1.2+]=20[media]=20[video=20=E6=94=B6?= =?UTF-8?q?=E6=9D=9F]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/video/ConsultVideoPlayer.kt | 2 +- .../charter/passenger/ui/video/VideoView.kt | 28 +++++----- .../video/adapter/RecyclerVideoAdapter.java | 2 +- OCH/common/biz/src/main/AndroidManifest.xml | 13 +++++ .../com/mogo/och/biz/media/MediaProvider.kt | 35 +++++++++++- .../mogo/och/biz/media/MediaServiceManager.kt | 7 +++ .../media/audition/AuditionCacheManager.kt | 4 +- .../mogo/och/biz/media/video}/MediaBean.kt | 56 +++---------------- .../media/video}/MediaDataSourceManager.kt | 39 ++++--------- .../biz/media/video}/MediaFileCacheManager.kt | 5 +- .../och/biz/media/video}/MediaLoopPlayView.kt | 19 +++---- .../och/biz/media/video}/MediaPlayLogger.kt | 11 +--- .../biz/media/video}/MediaPlayerActivity.kt | 2 +- .../biz/media/video}/MediaPlayerCustomView.kt | 7 +-- .../biz/media/video}/VideoPlayerFragment.kt | 53 +++++++++--------- .../res/layout/biz_fragment_video_player.xml} | 2 +- .../common/module/debug/DebugDataDispatch.kt | 7 --- .../common/src/main/AndroidManifest.xml | 13 ----- .../common/module/biz/media/IVideoListener.kt | 6 +- .../common/module/biz/media/MediaManager.kt | 24 +++++++- .../common/module/biz/media/MediaService.kt | 13 ++++- .../common/module/biz/media/data/MediaItem.kt | 33 +++++++++++ .../logchainanalytic/OchChainLogManager.kt | 5 ++ .../weaknet/passenger/ui/PM2BaseFragment.kt | 8 ++- .../passenger/ShuttlePassengerProvider.kt | 5 +- .../weaknet/passenger/model/CommonModel.kt | 2 +- .../passenger/ui/video/InfoVideoView.kt | 32 +++++------ .../ui/video/RecyclerVideoAdapter.java | 2 +- .../ui/video/RecyclerVideoAdapterNew.kt | 2 +- .../passenger/widget/ConsultVideoPlayer.kt | 2 +- .../src/main/res/layout/item_ai_msg_qa.xml | 2 +- 31 files changed, 241 insertions(+), 200 deletions(-) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaBean.kt (61%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaDataSourceManager.kt (90%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaFileCacheManager.kt (93%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaLoopPlayView.kt (95%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaPlayLogger.kt (76%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaPlayerActivity.kt (96%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/MediaPlayerCustomView.kt (98%) rename OCH/common/{common/src/main/java/com/mogo/och/common/module/wigets/media => biz/src/main/java/com/mogo/och/biz/media/video}/VideoPlayerFragment.kt (74%) rename OCH/common/{common/src/main/res/layout/fragment_video_player.xml => biz/src/main/res/layout/biz_fragment_video_player.xml} (93%) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MediaItem.kt diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt index 114aa58ccc..13b9c5d8a9 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt @@ -25,7 +25,7 @@ import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.utils.FullVideoUtils import com.mogo.och.common.module.biz.media.MediaManager -import com.mogo.och.common.module.wigets.media.MediaItem +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.skin.widget.SkinImageView import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack import com.shuyu.gsyvideoplayer.utils.GSYVideoType 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 0119f2c0cd..3ab0a09f50 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 @@ -8,7 +8,6 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.main.MainMoGoApplication import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -19,11 +18,10 @@ import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselLayout import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselZoomPostLayoutListener import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CenterScrollListener import com.mogo.och.charter.passenger.ui.video.adapter.RecyclerVideoAdapter -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.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.logchainanalytic.OchChainLogManager import com.shuyu.gsyvideoplayer.video.base.GSYVideoView import kotlinx.android.synthetic.main.charter_p_video_fragment.view.rvVideoPlaylist import kotlin.math.floor @@ -80,7 +78,7 @@ class VideoView @JvmOverloads constructor( } } prePlayerPosition = centerItemPosition - MediaPlayLogger.printInfoLog("pageSelect, currentPosition=$prePlayerPosition") + OchChainLogManager.writeChainLogMedia("Info", "pageSelect, currentPosition=$prePlayerPosition") } override fun pageStop() { @@ -122,11 +120,11 @@ class VideoView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() - MediaFileCacheManager.createFileCacheDir(MainMoGoApplication.getApp().applicationContext) - MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener { + MediaManager.Video.createCacheFileDir() + MediaManager.addListener(TAG,object :IVideoListener{ override fun onMediaDataSourceChanged(list: List) { val isNewData = mediaList.isNotEmpty() - MediaPlayLogger.printInfoLog("onMediaDataSourceChanged:isNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}") + OchChainLogManager.writeChainLogMedia("Info", "onMediaDataSourceChanged:isNewData=$isNewData, dataSize=${list.size}, list=${GsonUtils.toJson(list)}") val localMediaList = mutableListOf() list.forEach { val taxiPassengerVideoPlay = TaxiPassengerVideoPlay( @@ -140,17 +138,18 @@ class VideoView @JvmOverloads constructor( if (isNewData) { if (!isVisible) { updateMediaListDataAndView(localMediaList) - MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新") + OchChainLogManager.writeChainLogMedia("Info", "onMediaDataSourceChanged, 宣传视频数据已更新") } else { mNewMediaList.clear() mNewMediaList.addAll(localMediaList) } } else { updateMediaListDataAndView(localMediaList) - MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新") + OchChainLogManager.writeChainLogMedia("Info", "onMediaDataSourceChanged, 宣传视频数据已更新") } } }) + MediaManager.Video.init() } private fun updateMediaListDataAndView(newList: MutableList) { @@ -169,7 +168,8 @@ class VideoView @JvmOverloads constructor( } override fun onDetachedFromWindow() { - MediaDataSourceManager.unInit(TAG) + MediaManager.Video.unInit() + MediaManager.removeListener(TAG) super.onDetachedFromWindow() } @@ -193,7 +193,7 @@ class VideoView @JvmOverloads constructor( if (mNewMediaList.isNotEmpty()) { updateMediaListDataAndView(mNewMediaList) mNewMediaList.clear() - MediaPlayLogger.printInfoLog("onVisibilityChanged, 宣传视频数据已更新") + OchChainLogManager.writeChainLogMedia("Info", "onVisibilityChanged, 宣传视频数据已更新") } } catch (e: Exception) { e.printStackTrace() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java index 904679cc44..ab81860832 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java @@ -11,7 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; -import com.mogo.och.common.module.wigets.media.MediaItem; +import com.mogo.och.common.module.biz.media.data.MediaItem; import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; import com.mogo.och.charter.passenger.R; import com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay; diff --git a/OCH/common/biz/src/main/AndroidManifest.xml b/OCH/common/biz/src/main/AndroidManifest.xml index 455cb3ef2a..779575ab47 100644 --- a/OCH/common/biz/src/main/AndroidManifest.xml +++ b/OCH/common/biz/src/main/AndroidManifest.xml @@ -2,4 +2,17 @@ + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt index ea768c3b61..d45ced5549 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaProvider.kt @@ -3,16 +3,23 @@ package com.mogo.och.biz.media import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.function.call.base.CallerBase +import com.mogo.eagle.core.function.main.MainMoGoApplication import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.och.biz.media.audition.AuditionManager import com.mogo.och.biz.media.tts.VoiceIn import com.mogo.och.biz.media.tts.VoiceOut +import com.mogo.och.biz.media.video.MediaDataSourceManager +import com.mogo.och.biz.media.video.MediaPlayerActivity +import com.mogo.och.biz.media.video.VideoPlayerFragment import com.mogo.och.common.module.biz.media.IVideoListener import com.mogo.och.common.module.biz.media.MediaService import com.mogo.och.common.module.biz.media.MusicDataChangeListener +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.wigets.media.MediaItem +import com.mogo.och.biz.media.video.MediaFileCacheManager import com.mogo.tts.base.IMogoTTSCallback import com.mogo.tts.base.LangTtsEntity @@ -57,6 +64,12 @@ class MediaProvider : MediaService, CallerBase() { } } + fun invokeMediaDataChange(newDataList: List) { + M_LISTENERS.forEach { + it.value.onMediaDataSourceChanged(newDataList) + } + } + override fun setTTSFocusChange(speaking: Boolean) { AudioFocusManager.setTTSFocusChange(speaking) } @@ -136,6 +149,26 @@ class MediaProvider : MediaService, CallerBase() { VoiceOut.showNoticeOut(notice) } + override fun startSecondAds() { + MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) + } + + override fun getAdFragment(): VideoPlayerFragment { + return VideoPlayerFragment() + } + + override fun createCacheFileDir() { + MediaFileCacheManager.createFileCacheDir(MainMoGoApplication.getApp().applicationContext) + } + + override fun initMediaData() { + MediaDataSourceManager.init() + } + + override fun unInitMediaData() { + MediaDataSourceManager.unInit() + } + override fun stopTTs() { VoiceIn.stopCurrentTts() } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt index 4f6134daf7..50871fe3e1 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/MediaServiceManager.kt @@ -3,6 +3,7 @@ package com.mogo.och.biz.media import android.annotation.SuppressLint import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.constant.OchCommonConst object MediaServiceManager { @@ -13,6 +14,12 @@ object MediaServiceManager { private var mediaService: MediaProvider? = ARouter.getInstance().build(OchCommonConst.BIZ_Media).navigation() as MediaProvider + fun invokeMediaSourceDataChange(newDataList: List) { + mediaService?.invokeMediaDataChange(newDataList) + } + fun invokeCreateCacheFileDir() { + mediaService?.createCacheFileDir() + } } \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt index 57fd3235f1..9efbe1a953 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/audition/AuditionCacheManager.kt @@ -15,8 +15,8 @@ import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.EVENT_KEY_INFE_WITH_MUSIC import com.mogo.och.common.module.utils.FileUtils -import com.mogo.och.common.module.wigets.media.MediaBeanManager -import com.mogo.och.common.module.wigets.media.MediaPlayLogger +import com.mogo.och.biz.media.video.MediaBeanManager +import com.mogo.och.biz.media.video.MediaPlayLogger import java.io.File import java.io.FileOutputStream import java.io.IOException diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaBean.kt similarity index 61% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaBean.kt index 137e80f445..c08d800930 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaBean.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaBean.kt @@ -1,10 +1,11 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import com.google.gson.reflect.TypeToken import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.Vehicle import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.biz.media.data.MusicData object MediaBeanManager { @@ -72,56 +73,13 @@ object MediaBeanManager { } } -data class MediaDataWithVehicleList(val musicDataWithEnvList: MutableList) { - -} - data class MediaDataWithVehicle( - val B1: B1, - val B2: B2, - val T1T2: T1T2, - val M1: M1, + val B1: MediaVehicle, + val B2: MediaVehicle, + val T1T2: MediaVehicle, + val M1: MediaVehicle, ) - -data class B1(val medias: MutableList, val musics: MutableList) -data class B2(val medias: MutableList, val musics: MutableList) -data class T1T2(val medias: MutableList, val musics: MutableList) -data class M1(val medias: MutableList, val musics: MutableList) - -data class MediaBean( - val medias: MutableList, - val musics: MutableList, -) - -data class MediaItem( - var priority: Int, - var fileUrl: String, - var fileType: Int, - var coverImageUrl: String, - var title: String, - val isTemp: Boolean = false -) { - companion object { - const val MEDIA_TYPE_IMAGE = 1 - const val MEDIA_TYPE_VIDEO = 2 - - const val PriorityConfi = 2 - const val PriorityAd = 1 - const val PrioritySite = 0 - - // 站点优先级 0 - // 广告优先级 1 - // 本地配置是 2 - } - - fun isImageType(): Boolean { - return this.fileType == MEDIA_TYPE_IMAGE - } - - fun isVideoType(): Boolean { - return this.fileType == MEDIA_TYPE_VIDEO - } +data class MediaVehicle (val medias: MutableList, val musics: MutableList) -} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaDataSourceManager.kt similarity index 90% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaDataSourceManager.kt index b17a0727fe..5dc56ad745 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaDataSourceManager.kt @@ -1,31 +1,30 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import android.annotation.SuppressLint import android.content.Context import android.text.TextUtils -import com.google.gson.reflect.TypeToken import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.commons.env.ProjectUtils 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.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.biz.media.MediaServiceManager import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket +import com.mogo.och.common.module.biz.media.data.MediaItem +import com.mogo.och.common.module.biz.media.data.MediaItem.Companion.MEDIA_TYPE_IMAGE +import com.mogo.och.common.module.biz.media.data.MediaItem.Companion.MEDIA_TYPE_VIDEO import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.network.OchCommonSubscribeImpl import com.mogo.och.common.module.network.interceptor.transformTry -import com.mogo.och.common.module.wigets.media.MediaItem.Companion.MEDIA_TYPE_IMAGE -import com.mogo.och.common.module.wigets.media.MediaItem.Companion.MEDIA_TYPE_VIDEO import io.reactivex.Observable import retrofit2.http.GET import retrofit2.http.Headers import retrofit2.http.Query -import java.util.concurrent.ConcurrentHashMap /** * 广告视频数据源 管理类 @@ -64,23 +63,19 @@ object MediaDataSourceManager { private var mHasEverGetMediaDataFromMis = false - private val mMediaDataSourceListenerMap: ConcurrentHashMap = - ConcurrentHashMap() - private val getAdDataSourceLoopRunnable = Runnable { startGetMediaDataSourceLoop() } - fun init(tag: String, dataSourceListener: IMediaDataSourceListener) { - if (!mMediaDataSourceListenerMap.containsKey(tag)) { - mMediaDataSourceListenerMap[tag] = dataSourceListener - } + fun init() { MediaPlayLogger.printInfoLog("init, 初始化环境 isSassProject=${ProjectUtils.isSaas()}") if (ProjectUtils.isSaas()||ProjectUtils.isDali()) { if(ProjectUtils.isSaas()){ - mNetworkService = MoGoRetrofitFactory.getInstance(OchCommonConst.getEagleMisUrl()).create(IMediaNetworkApi::class.java) + mNetworkService = MoGoRetrofitFactory.getInstance(OchCommonConst.getEagleMisUrl()).create( + IMediaNetworkApi::class.java) }else if(ProjectUtils.isDali()){ - mNetworkService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(IMediaNetworkApi::class.java) + mNetworkService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( + IMediaNetworkApi::class.java) } MediaPlayLogger.printInfoLog("init, 开始检查后台配置数据") startGetMediaDataSourceLoop() @@ -92,12 +87,9 @@ object MediaDataSourceManager { } } - fun unInit(tag: String) { + fun unInit() { MediaPlayLogger.printInfoLog("unInit") removeGetMediaDataSourceLoop() - if (mMediaDataSourceListenerMap.containsKey(tag)) { - mMediaDataSourceListenerMap.remove(tag) - } mLastMediaDataSourceList.clear() } @@ -226,19 +218,12 @@ object MediaDataSourceManager { private fun updateMediaDataSource(newDataList: List) { mLastMediaDataSourceList.clear() mLastMediaDataSourceList.addAll(newDataList) - mMediaDataSourceListenerMap.forEach { - val listener = it.value - listener.onMediaDataSourceChanged(newDataList) - } + MediaServiceManager.invokeMediaSourceDataChange(newDataList) MediaPlayLogger.printInfoLog("下发新MediaData给监听者,dataSize=${newDataList.size}") } } -interface IMediaDataSourceListener { - fun onMediaDataSourceChanged(list: List) -} - interface IMediaNetworkApi { @Headers("Content-type:application/json;charset=UTF-8") @GET("/platform/biz/adv/screen/advs") diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaFileCacheManager.kt similarity index 93% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaFileCacheManager.kt index 16506e7f89..c5d306a5e7 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaFileCacheManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaFileCacheManager.kt @@ -1,10 +1,9 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import android.content.Context import android.os.Environment import android.text.TextUtils import android.util.Log -import com.mogo.eagle.core.utilcode.download.DownloadUtils import com.mogo.eagle.core.utilcode.download.callback.IDownloadListener import com.mogo.eagle.core.utilcode.util.EncryptUtils import com.mogo.och.common.module.manager.download.DownloadManager @@ -59,7 +58,7 @@ object MediaFileCacheManager { * 获取文件缓存的缓存path, 文件名以base64编码避免 中文命名,重复文件名的影响 */ fun getCacheFileFullPathByUrl(context: Context, mediaUrl: String): String { - return getFileCacheDir(context) +File.separator +getCacheFileName(mediaUrl) + return getFileCacheDir(context) +File.separator + getCacheFileName(mediaUrl) } /** diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaLoopPlayView.kt similarity index 95% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaLoopPlayView.kt index 3c95f294e2..6f05797b21 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaLoopPlayView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaLoopPlayView.kt @@ -1,7 +1,5 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video -import AdvanceImageView -import AdvanceVideoView import android.content.Context import android.util.AttributeSet import android.view.MotionEvent @@ -13,8 +11,9 @@ 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.ToastUtils -import com.mogo.och.common.module.wigets.media.MediaLoopPlayView.Companion.IMAGE_COUNT_DOWN_SECONDS -import com.mogo.och.common.module.wigets.media.MediaLoopPlayView.Companion.TAG +import com.mogo.och.common.module.biz.media.data.MediaItem +import com.mogo.och.biz.media.video.MediaLoopPlayView.Companion.IMAGE_COUNT_DOWN_SECONDS +import com.mogo.och.biz.media.video.MediaLoopPlayView.Companion.TAG import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack class MediaLoopPlayView @JvmOverloads constructor( @@ -93,7 +92,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter fun setMediaData(list: MutableList) { if (list.isEmpty()) { - MediaPlayLogger.printInfoLog( "setMediaData, list为空") + MediaPlayLogger.printInfoLog("setMediaData, list为空") return } @@ -162,7 +161,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter videoView.initVideoUrlData(item.fileUrl, item.coverImageUrl,item.priority,item.isTemp) mItemViewList.add(videoView) } else { - MediaPlayLogger.printErrorLog( "addItemView 不支持的文件类型:${item.fileType}") + MediaPlayLogger.printErrorLog("addItemView 不支持的文件类型:${item.fileType}") } } @@ -340,7 +339,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter } override fun onFinish() { - MediaPlayLogger.printInfoLog( "mImageCountDownTimer, 倒计时${IMAGE_COUNT_DOWN_SECONDS}秒, onFinish") + MediaPlayLogger.printInfoLog("mImageCountDownTimer, 倒计时${IMAGE_COUNT_DOWN_SECONDS}秒, onFinish") playNextItemView(false) } }.start() @@ -404,7 +403,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter } fun setPause() { - MediaPlayLogger.printInfoLog("${MediaLoopPlayView.TAG}, setPause") + MediaPlayLogger.printInfoLog("$TAG, setPause") if (mItemViewList.size <= 0) { return } @@ -418,7 +417,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter } fun setResume() { - MediaPlayLogger.printInfoLog("${MediaLoopPlayView.TAG}, setResume") + MediaPlayLogger.printInfoLog("$TAG, setResume") if (mItemViewList.size <= 0) { return } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayLogger.kt similarity index 76% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayLogger.kt index 2fdb2c88c9..490ca13c53 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayLogger.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayLogger.kt @@ -1,9 +1,10 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.lifecycleScope import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -32,13 +33,7 @@ object MediaPlayLogger { */ 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 - ) + OchChainLogManager.writeChainLogMedia(level,msg) } } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerActivity.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerActivity.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerActivity.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerActivity.kt index 42200a187b..5624e8e5f6 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerActivity.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerActivity.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import android.os.Bundle import androidx.appcompat.app.AppCompatActivity diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerCustomView.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerCustomView.kt index 899639d571..37d3b643b6 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/MediaPlayerCustomView.kt @@ -1,3 +1,5 @@ +package com.mogo.och.biz.media.video + import android.content.Context import android.graphics.Bitmap import android.media.AudioManager @@ -21,10 +23,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.common.module.utils.CustomManager import com.mogo.och.common.module.R -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.MediaLoopPlayView -import com.mogo.och.common.module.wigets.media.MediaPlayLogger +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.skin.utils.SkinResources import com.mogo.skin.widget.SkinImageView import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/VideoPlayerFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/VideoPlayerFragment.kt similarity index 74% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/VideoPlayerFragment.kt rename to OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/VideoPlayerFragment.kt index 8d4975111b..80769e1afd 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/VideoPlayerFragment.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/media/video/VideoPlayerFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.media +package com.mogo.och.biz.media.video import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.mvp.Presenter @@ -8,16 +8,18 @@ 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.common.module.R +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.fragment_video_player.acb_add_site_video -import kotlinx.android.synthetic.main.fragment_video_player.imageVideoRotationView +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 @@ -33,7 +35,7 @@ class VideoPlayerFragment : private var arrayListOf = mutableListOf() override fun getLayoutId(): Int { - return R.layout.fragment_video_player + return R.layout.biz_fragment_video_player } override fun createPresenter(): MediaPlayerPresenter { @@ -52,33 +54,34 @@ class VideoPlayerFragment : setHightPriorityMediaItem(siteList) } MediaManager.addListener(TAG,this) - MediaFileCacheManager.createFileCacheDir(MainMoGoApplication.getApp().applicationContext) - MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener { - override fun onMediaDataSourceChanged(list: List) { - 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) - } - } + MediaServiceManager.invokeCreateCacheFileDir() + MediaDataSourceManager.init() + } + + override fun onMediaDataSourceChanged(list: List) { + 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){ context?.let {context-> val cacheList = list.filter { - if(!MediaFileCacheManager.isLocalCacheFileExists(context,it.fileUrl)){ + if(!MediaFileCacheManager.isLocalCacheFileExists(context, it.fileUrl)){ DownloadManager.downloadVideoFile(it.fileUrl,null) } - MediaFileCacheManager.isLocalCacheFileExists(context,it.fileUrl) + MediaFileCacheManager.isLocalCacheFileExists(context, it.fileUrl) } ThreadUtils.runOnUiThread { imageVideoRotationView.setsetHightPriorityMediaItem(cacheList.toMutableList()) @@ -99,7 +102,7 @@ class VideoPlayerFragment : } override fun onDestroy() { - MediaDataSourceManager.unInit(TAG) + MediaDataSourceManager.unInit() GSYVideoManager.releaseAllVideos() MediaManager.removeListener(TAG) super.onDestroy() diff --git a/OCH/common/common/src/main/res/layout/fragment_video_player.xml b/OCH/common/biz/src/main/res/layout/biz_fragment_video_player.xml similarity index 93% rename from OCH/common/common/src/main/res/layout/fragment_video_player.xml rename to OCH/common/biz/src/main/res/layout/biz_fragment_video_player.xml index becec91ba9..380b093245 100644 --- a/OCH/common/common/src/main/res/layout/fragment_video_player.xml +++ b/OCH/common/biz/src/main/res/layout/biz_fragment_video_player.xml @@ -4,7 +4,7 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> - diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index c0663fc87c..b94666098f 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -45,7 +45,6 @@ import com.mogo.och.common.module.biz.order.OrderManager import com.mogo.och.common.module.debug.location.MogoLocationExit import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.view.DebugFloatWindow -import com.mogo.och.common.module.wigets.media.MediaBeanManager import com.zhjt.mogo.adas.data.bean.AutopilotStatistics import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -78,7 +77,6 @@ object DebugDataDispatch { const val scanner = "scanner" const val ota = "ota" const val video = "video" - const val mediaMusic = "mediaAndMusic" const val vlmMessage = "vlmMessage" const val vlmImage = "vlmImage" const val pncAction = "pncAction" @@ -148,11 +146,6 @@ object DebugDataDispatch { CallerVlmManager.invokeVllmImage(time.toDouble(),byteArray) } } - mediaMusic -> { - val musicList = MediaBeanManager.getMusicList() - val mediaList = MediaBeanManager.getMediaList() - CallerLogger.d(TAG,"${mediaList}\n${musicList}") - } video -> { val ota = intent.getIntExtra("video",0) // rtmp://video.zhidaozhixing.com/live/861130041693196C_2 diff --git a/OCH/common/common/src/main/AndroidManifest.xml b/OCH/common/common/src/main/AndroidManifest.xml index ceb2e638c5..35ac63f96c 100644 --- a/OCH/common/common/src/main/AndroidManifest.xml +++ b/OCH/common/common/src/main/AndroidManifest.xml @@ -1,17 +1,4 @@ - - - \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IVideoListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IVideoListener.kt index 37c96760c6..c8e5aca5c0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IVideoListener.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/IVideoListener.kt @@ -1,16 +1,18 @@ package com.mogo.och.common.module.biz.media +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.biz.media.data.MusicData -import com.mogo.och.common.module.wigets.media.MediaItem interface IVideoListener { - fun diapatchMedia(list :MutableList) + fun diapatchMedia(list :MutableList){} fun setMediaPause(){} fun setMediaResume(){} + fun onMediaDataSourceChanged(list: List){} + } interface MusicDataChangeListener{ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt index f1a367def3..641b39c3bd 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaManager.kt @@ -1,9 +1,10 @@ package com.mogo.och.common.module.biz.media +import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.biz.media.data.MusicData import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.wigets.media.MediaItem import com.mogo.tts.base.IMogoTTSCallback import com.mogo.tts.base.LangTtsEntity @@ -91,6 +92,27 @@ object MediaManager { } + object Video{ + fun startSecondAds(){ + mediaService?.startSecondAds() + } + + fun getAdFragment(): Fragment? { + return mediaService?.getAdFragment() + } + + fun createCacheFileDir() { + mediaService?.createCacheFileDir() + } + + fun init() { + mediaService?.initMediaData() + } + + fun unInit() { + mediaService?.unInitMediaData() + } + } object Tts{ fun loadOuttts(){ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt index eacc49e3ad..bcdded825c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/MediaService.kt @@ -1,8 +1,9 @@ package com.mogo.och.common.module.biz.media +import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.template.IProvider +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.biz.media.data.MusicData -import com.mogo.och.common.module.wigets.media.MediaItem import com.mogo.tts.base.IMogoTTSCallback import com.mogo.tts.base.LangTtsEntity @@ -58,4 +59,14 @@ interface MediaService : IProvider { fun showNoticeOut(notice: String?) + fun startSecondAds() + + fun getAdFragment() :Fragment + + fun createCacheFileDir() + + fun initMediaData() + + fun unInitMediaData() + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MediaItem.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MediaItem.kt new file mode 100644 index 0000000000..9152b3294d --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/media/data/MediaItem.kt @@ -0,0 +1,33 @@ +package com.mogo.och.common.module.biz.media.data + +data class MediaItem( + var priority: Int, + var fileUrl: String, + var fileType: Int, + var coverImageUrl: String, + var title: String, + val isTemp: Boolean = false +) { + companion object { + const val MEDIA_TYPE_IMAGE = 1 + const val MEDIA_TYPE_VIDEO = 2 + + const val PriorityConfi = 2 + const val PriorityAd = 1 + const val PrioritySite = 0 + + // 站点优先级 0 + // 广告优先级 1 + // 本地配置是 2 + } + + fun isImageType(): Boolean { + return this.fileType == MEDIA_TYPE_IMAGE + } + + fun isVideoType(): Boolean { + return this.fileType == MEDIA_TYPE_VIDEO + } + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 5939d765b4..a489312ff9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -68,6 +68,11 @@ object OchChainLogManager { const val EVENT_KEY_INFO_BRIDGE = "analytics_event_och_bridge" + const val EVENT_KEY_INFO_MEDIA = "analytics_event_och_media" + + fun writeChainLogMedia(title: String,info: String) { + writeChainLog(title, info, true, EVENT_KEY_INFO_MEDIA) + } fun writeCHainLogBridge(title: String,info: String) { writeChainLog(title, info, false, EVENT_KEY_INFO_BRIDGE) diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt index 52b28a4251..48f23dbe42 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt @@ -3,6 +3,7 @@ package com.mogo.och.shuttle.weaknet.passenger.ui import android.view.View import android.view.ViewGroup import android.widget.FrameLayout +import androidx.fragment.app.Fragment import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.function.call.hmi.CallerRoadV2NEventWindowListenerManager @@ -17,7 +18,6 @@ import com.mogo.och.common.module.manager.transform.OchTransform import com.mogo.och.common.module.manager.transform.OchTransformDispatch import com.mogo.och.shuttle.weaknet.passenger.R import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2Presenter -import com.mogo.och.common.module.wigets.media.VideoPlayerFragment import com.mogo.och.shuttle.weaknet.passenger.ui.line.PM2DrivingInfoFragment import com.mogo.och.shuttle.weaknet.passenger.ui.map.PM2HPMapFragment import com.mogo.och.shuttle.weaknet.passenger.ui.mind.AIMessageManager @@ -40,7 +40,7 @@ class PM2BaseFragment : private var drivingFragment: PM2DrivingInfoFragment? = null private var hdMapFragment: PM2HPMapFragment? = null - private var mediaFragment: VideoPlayerFragment? = null + private var mediaFragment: Fragment? = null // 视频直播流 private val ochTransform = object : OchTransformDispatch { @@ -99,7 +99,9 @@ class PM2BaseFragment : childFragmentManager.beginTransaction().add(R.id.hd_map_fragment, hdMapFragment!!) .show(hdMapFragment!!).commitAllowingStateLoss() - if (mediaFragment == null) mediaFragment = VideoPlayerFragment() + if (mediaFragment == null) { + mediaFragment = MediaManager.Video.getAdFragment() + } childFragmentManager.beginTransaction().add(R.id.video_fragment, mediaFragment!!) .show(mediaFragment!!).commitAllowingStateLoss() diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt index d2f6733bf7..f4cbc1800a 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt @@ -6,13 +6,10 @@ import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.DeviceUtils -import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.wigets.media.MediaPlayerActivity import com.mogo.och.shuttle.weaknet.passenger.model.TicketModel import com.mogo.och.shuttle.weaknet.passenger.ui.widget.BusPStatusBarView import com.mogo.och.shuttle.weaknet.passenger.ui.BusPassengerRouteFragment @@ -49,7 +46,7 @@ class ShuttlePassengerProvider : CommonServiceImpl() { override fun getFragment(): Fragment { if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && DeviceUtils.isEB5Model()) { - MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) + MediaManager.Video.startSecondAds() } if(mPM2Fragment==null){ mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt index 00d8aecfd8..213727373d 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt @@ -25,6 +25,7 @@ import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.bridge.distance.IDistanceListener import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.biz.birdge.BridgeManager +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.manager.download.DownloadManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager @@ -37,7 +38,6 @@ import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.PinYinUtil -import com.mogo.och.common.module.wigets.media.MediaItem import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.BusTransferData diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt index 54cb99103b..f7acfb0c86 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt @@ -12,18 +12,15 @@ import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions -import com.mogo.eagle.core.function.main.MainMoGoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.biz.media.MediaManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager -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.common.module.biz.media.IVideoListener +import com.mogo.och.common.module.biz.media.data.MediaItem +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.unmanned.passenger.ui.video.RecyclerVideoAdapterNew.OnThumbImageClilckListener import com.mogo.och.unmanned.passenger.widget.ConsultVideoPlayer @@ -95,17 +92,16 @@ internal class InfoVideoView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() - MediaFileCacheManager.createFileCacheDir(MainMoGoApplication.getApp().applicationContext) - MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener { + MediaManager.Video.createCacheFileDir() + MediaManager.addListener(TAG,object :IVideoListener{ override fun onMediaDataSourceChanged(list: List) { val isNewData = mediaList.isNotEmpty() - MediaPlayLogger.printInfoLog( + OchChainLogManager.writeChainLogMedia("info", "onMediaDataSourceChanged:isNewData=$isNewData, dataSize=${list.size}, list=${ - GsonUtils.toJson( - list - ) - }" - ) + GsonUtils.toJson( + list + ) + }") val localMediaList = mutableListOf() list.forEach { val taxiPassengerVideoPlay = TaxiPassengerVideoPlay( @@ -119,17 +115,18 @@ internal class InfoVideoView @JvmOverloads constructor( if (isNewData) { if (!isVisible) { updateMediaListDataAndView(localMediaList) - MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新") + OchChainLogManager.writeChainLogMedia("info","onMediaDataSourceChanged, 宣传视频数据已更新") } else { mNewMediaList.clear() mNewMediaList.addAll(localMediaList) } } else { updateMediaListDataAndView(localMediaList) - MediaPlayLogger.printInfoLog("onMediaDataSourceChanged, 宣传视频数据已更新") + OchChainLogManager.writeChainLogMedia("info","onMediaDataSourceChanged, 宣传视频数据已更新") } } }) + MediaManager.Video.init() } private fun updateMediaListDataAndView(newList: MutableList) { @@ -224,7 +221,8 @@ internal class InfoVideoView @JvmOverloads constructor( } override fun onDetachedFromWindow() { - MediaDataSourceManager.unInit(TAG) + MediaManager.removeListener(TAG) + MediaManager.Video.unInit() GSYVideoManager.releaseAllVideos() super.onDetachedFromWindow() } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapter.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapter.java index 6bc8df9efb..4bb65c4564 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapter.java +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapter.java @@ -12,7 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.wigets.media.MediaItem; +import com.mogo.och.common.module.biz.media.data.MediaItem; import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay; import com.mogo.och.unmanned.taxi.passenger.R; import com.mogo.skin.utils.SkinResources; diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt index 68fdf2a1e7..60b2f39cce 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt @@ -9,7 +9,7 @@ import androidx.appcompat.widget.AppCompatTextView import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions -import com.mogo.och.common.module.wigets.media.MediaItem +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.unmanned.taxi.passenger.R import com.mogo.skin.utils.SkinResources diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt index cad03e327f..a70b39c0ed 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/ConsultVideoPlayer.kt @@ -27,7 +27,7 @@ import com.mogo.eagle.core.utilcode.util.TimeTransformUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.common.module.biz.media.MediaManager -import com.mogo.och.common.module.wigets.media.MediaItem +import com.mogo.och.common.module.biz.media.data.MediaItem import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.unmanned.passenger.ui.statusview.StatusBarView import com.mogo.och.unmanned.passenger.ui.video.FullVideoUtils diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_msg_qa.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_msg_qa.xml index 44171a642c..211cd007fb 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_msg_qa.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_msg_qa.xml @@ -87,12 +87,12 @@ + -