This commit is contained in:
lixiaopeng
2020-12-20 17:08:32 +08:00
parent 62af5e1978
commit b1e7582531
5 changed files with 36 additions and 65 deletions

View File

@@ -28,8 +28,7 @@ import com.tencent.rtmp.ui.TXCloudVideoView;
* V2XLiveGSYVideoView
*/
public class CameraLiveGSYVideoView extends LiveRoundLayout implements IMogoSkinCompatSupportable {
private static final String TAG = "liyz";
private static final String TAG = "CameraLiveGSYVideoView";
private TXCloudVideoView mTxcVideoView;
private ProgressBar mLoading;
private TXLivePlayer mLivePlayer;

View File

@@ -17,7 +17,7 @@ import com.mogo.utils.logger.Logger;
* 路边摄像头直播控制 V2XPushLiveCarScenario
*/
public class CameraLiveManager extends AbsCameraScenario<CloudRoadData> implements IMogoTopViewStatusListener {
private static final String TAG = "liyz";
private static final String TAG = "CameraLiveManager";
private static CameraLiveManager mCameraLiveManager;
private boolean isShowWindow;

View File

@@ -3,16 +3,14 @@ package com.mogo.module.extensions.utils;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.marker.RoadConditionInfoWindow3DAdapter;
import com.mogo.module.common.entity.CloudRoadData;
import com.mogo.module.common.entity.MogoSnapshotSetData;
import com.mogo.module.extensions.R;
@@ -22,9 +20,7 @@ import com.mogo.module.extensions.live.ExtensionServiceManager;
import com.mogo.module.extensions.live.PushDataType;
import com.mogo.service.connection.IMogoOnWebSocketMessageListener;
import com.mogo.service.connection.WebSocketMsgType;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
@@ -37,6 +33,8 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
private static IMogoMarker mMogoMarker;
private CloudRoadData mCloudRoadData;
private boolean isVrMode;
private boolean isVrModeMarker;
private volatile String mCurrentUuid;
public void init(Context context) {
@@ -50,16 +48,16 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
@Override
public boolean onMarkerClicked(IMogoMarker marker) {
//点击的marker的具体数据
if (mCloudRoadData != null) {
if (mCloudRoadData != null && !TextUtils.isEmpty(mCloudRoadData.getRtmpUrl())) {
CameraLiveManager.getInstance().init(mCloudRoadData);
} else {
Logger.e(TAG, " onMarkerClicked mCloudRoadData == null ");
TipToast.shortTip("直播流地址为空");
}
return false;
}
});
}
public void release() {
@@ -70,28 +68,12 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
public void enterVrMode() {
Logger.d(TAG, "进入vr模式===");
isVrMode = true;
//test
// CloudRoadData cloudRoadData = new CloudRoadData();
// cloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
// //shunyi
// cloudRoadData.setLat(40.200583);
// cloudRoadData.setLon(116.738538);
// addVrCameraMarker(cloudRoadData);
}
public void exitVrMode() {
Logger.d(TAG, "退出vr模式===");
isVrMode = false;
//test
// CloudRoadData mCloudRoadData = new CloudRoadData();
// mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
// //shunyi
// mCloudRoadData.setLat(40.200583);
// mCloudRoadData.setLon(116.738538);
// addNormalCameraMarker(mCloudRoadData);
}
/**
@@ -101,7 +83,8 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
* @param roadData
*/
private void addVrCameraMarker(CloudRoadData roadData) {
Log.d(TAG, "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon());
Logger.d(TAG, "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
Log.d("lixp", "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
removeCameraMarker();
MogoMarkerOptions options = new MogoMarkerOptions()
.object(roadData)
@@ -114,7 +97,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
mMogoMarker = ExtensionServiceManager.getMapService().getMarkerManager(mContext)
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
if (mMogoMarker != null) {
mMogoMarker.setInfoWindowAdapter(new CameraWindow3DAdapter(AbsMogoApplication.getApp(), mMogoMarker.getMogoMarkerOptions()));
mMogoMarker.setInfoWindowAdapter(new CameraWindow3DAdapter(AbsMogoApplication.getApp(), options));
mMogoMarker.showInfoWindow();
mMogoMarker.setOwner(PushDataType.TYPE_PUSH_CAMERA_DATA);
}
@@ -126,8 +109,11 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
* @param roadData
*/
private void addNormalCameraMarker(CloudRoadData roadData) {
Log.d(TAG, "addNormalCameraMarker --lat = " + roadData.getLat() + " --lon =" + roadData.getLon());
Logger.d(TAG, "addNormalCameraMarker --lat = " + roadData.getLat() + " --lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
Log.d("lixp", "addNormalCameraMarker --lat = " + roadData.getLat() + " --lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
removeCameraMarker();
mMogoMarker.hideInfoWindow();
MogoMarkerOptions options = new MogoMarkerOptions()
.object(roadData)
.latitude(roadData.getLat())
@@ -139,7 +125,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
mMogoMarker = ExtensionServiceManager.getMapService().getMarkerManager(mContext)
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
if (mMogoMarker != null) {
mMogoMarker.setInfoWindowAdapter(new CameraWindow3DAdapter(AbsMogoApplication.getApp(), mMogoMarker.getMogoMarkerOptions()));
mMogoMarker.setOwner(PushDataType.TYPE_PUSH_CAMERA_DATA);
}
}
@@ -159,60 +145,43 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
return MogoSnapshotSetData.class;
}
private volatile boolean isLoadVr = false;
private volatile boolean isLoadNormal = false;
private volatile String mCurrentUuid;
/**
* @param obj TODO
* @param obj
*/
@Override
public void onMsgReceived(MogoSnapshotSetData obj) {
Logger.d(TAG, "onMsgReceived cameralive : " + obj);
if (obj != null) {
mCloudRoadData = obj.getCamera();
if (mCloudRoadData != null) {
Log.e(TAG, "onMsgReceived getRtmpUrl = " + mCloudRoadData.getRtmpUrl() + "--- isVrMode = " + isVrMode + ">>>>mCurrentUuid = " + mCurrentUuid + ">>>mCloudRoadData.getUuid() = " + mCloudRoadData.getUuid());
if (mCurrentUuid != null && mCurrentUuid.equals(mCloudRoadData.getUuid())) {
Log.d(TAG, "isLoadVr = " + isLoadVr + "....isLoadNormal = " + isLoadNormal);
if (isVrMode) {
if (!isLoadVr) {
isLoadVr = true;
isLoadNormal = false;
Log.d(TAG, "addVrCameraMarker1 ------------1-------- ");
addVrCameraMarker(mCloudRoadData);
} else {
Log.e(TAG, "isVrMode not need add marker");
}
Logger.d(TAG, "onMsgReceived getRtmpUrl = " + mCloudRoadData.getRtmpUrl() + "--- isVrMode = " + isVrMode + ">>>>mCurrentUuid = " + mCurrentUuid + ">>>mCloudRoadData.getUuid() = " + mCloudRoadData.getUuid());
if (TextUtils.equals(mCurrentUuid, mCloudRoadData.getUuid())) {
if (isVrMode == isVrModeMarker) {
// do nothing.
} else {
if (!isLoadNormal) {
isLoadNormal = true;
isLoadVr = false;
Log.d(TAG, "addNormalCameraMarker1------------2-------- ");
addNormalCameraMarker(mCloudRoadData);
if (isVrMode) {
addVrCameraMarker(mCloudRoadData);
isVrModeMarker = true;
} else {
Log.e(TAG, "isNormalMode not need add marker");
addNormalCameraMarker(mCloudRoadData);
isVrModeMarker = false;
}
}
} else {
Logger.d(TAG, "mCurrentUuid != ----------");
mCurrentUuid = mCloudRoadData.getUuid();
Log.e(TAG, "mCurrentUuid == null " + "-----isVrMode = " + isVrMode);
if (isVrMode) { //TODO
Log.d(TAG, "addVrCameraMarker1 ------------11111-------- ");
if (isVrMode) {
addVrCameraMarker(mCloudRoadData);
isVrModeMarker = true;
} else {
Log.d(TAG, "addNormalCameraMarker1 ------------22222-------- ");
addNormalCameraMarker(mCloudRoadData);
isVrModeMarker = false;
}
}
} else {
//删除marker
Log.e(TAG, "onMsgReceived mCloudRoadData == null ");
UiThreadHandler.postDelayed(() -> {
removeCameraMarker();
}, 2_000);
Logger.e(TAG, "onMsgReceived mCloudRoadData == null ");
removeCameraMarker();
}
} else {
Logger.e(TAG, "onMsgReceived obj == null ");