[广告B2]
[播放广告+司机位视频流适配]
This commit is contained in:
yangyakun
2025-07-30 12:22:02 +08:00
parent eca13ec7df
commit 61ed55611b
4 changed files with 51 additions and 9 deletions

View File

@@ -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.IVideoListener
import com.mogo.och.common.module.biz.media.data.MediaItem
import com.mogo.och.common.module.constant.OchCommonConst
@@ -22,4 +23,12 @@ object MediaServiceManager {
mediaService?.createCacheFileDir()
}
fun addVideoListener(tag:String,listener: IVideoListener){
mediaService?.addVideoListener(tag,listener)
}
fun removeVideoListener(tag: String){
mediaService?.removeVideoListener(tag)
}
}

View File

@@ -187,4 +187,12 @@ class AdMediaView : FrameLayout, AdMediaViewCallback {
}
}
override fun pauseVideo() {
adVideoPlayer.onVideoPause()
}
override fun resumeVideo() {
adVideoPlayer.onVideoResume()
}
}

View File

@@ -14,7 +14,6 @@ import com.mogo.och.biz.media.video.MediaDataSourceManager
import com.mogo.och.biz.media.video.MediaFileCacheManager
import com.mogo.och.biz.media.video.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.utils.RxUtils
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
@@ -79,16 +78,34 @@ class AdMediaViewModel : ViewModel(), IVideoListener {
override fun onCleared() {
MediaDataSourceManager.unInit()
MediaManager.removeListener(TAG)
MediaServiceManager.removeVideoListener(TAG)
}
fun setAdMediaCallback(viewCallback: AdMediaViewCallback) {
this.viewCallback = viewCallback
MediaServiceManager.invokeCreateCacheFileDir()
MediaManager.addListener(TAG,this)
MediaServiceManager.addVideoListener(TAG,this)
MediaDataSourceManager.init()
}
override fun setMediaPause() {
super.setMediaPause()
if (currentPlayingItem?.isImageType()==true) {
RxUtils.disposeSubscribe(playImageDisposable)
}else{
this.viewCallback?.pauseVideo()
}
}
override fun setMediaResume() {
super.setMediaResume()
if (currentPlayingItem?.isImageType()==true) {
startPlayerAds(currentPlayingIndex)
}else{
this.viewCallback?.resumeVideo()
}
}
/**
* 分发广告数据
*/
@@ -295,6 +312,8 @@ class AdMediaViewModel : ViewModel(), IVideoListener {
fun startPlayImage(it: MediaItem)
fun startPlayVideo(it: MediaItem, playerCallback: GSYSampleCallBack)
fun startPlayStationVideo(stationMediaItem: MediaItem,adMediaItem: MediaItem?, playerCallback: GSYSampleCallBack)
fun pauseVideo()
fun resumeVideo()
}

View File

@@ -3,8 +3,10 @@ package com.mogo.och.common.module.debug
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Color
import android.os.Environment
import android.os.SystemClock
import android.widget.TextView
import chassis.Chassis
import chassis.Chassis.DoorNumber
import chassis.VehicleStateOuterClass
@@ -85,6 +87,7 @@ object DebugDataDispatch {
const val collisionRisk = "CollisionRisk"
const val mediaStationMedia = "stationMedia"
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "video" --ei add 2
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "1111/11111"
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "pncAction"
// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "CollisionRisk"
@@ -157,17 +160,20 @@ object DebugDataDispatch {
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
val byteArray = stream.toByteArray()
CallerVlmManager.invokeVllmImage(time.toDouble(),byteArray)
}
}
video -> {
val ota = intent.getIntExtra("video",0)
}
}
video -> {
val ota = intent.getIntExtra("add",0)
// rtmp://video.zhidaozhixing.com/live/861130041693196C_2
val url = intent.getStringExtra("url")?:""
BizLoopManager.runInMainThread(){
if(ota>0&&url.startsWith("rtmp://")){
if(ota>0){
val driveVideoView = CallerDevaToolsManager.driveSeatVideoProvider()
?.getDriveVideoView(url)
CallerOchBizFunctionCall4EagleManager.setVideoView(driveVideoView)
val test = TextView(ActivityUtils.getTopActivity())
test.text = "测试view"
test.setTextColor(Color.parseColor("#66FFFFFF"))
CallerOchBizFunctionCall4EagleManager.setVideoView(test)
}else{
CallerOchBizFunctionCall4EagleManager.setVideoView(null)
}