This commit is contained in:
lixiaopeng
2020-12-22 19:18:19 +08:00
parent 6d2b4dc0bb
commit debfed1074
4 changed files with 51 additions and 30 deletions

View File

@@ -7,6 +7,7 @@ import android.view.ViewGroup;
import androidx.annotation.Nullable;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.CloudRoadData;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.live.impl.AbsCameraScenario;
@@ -61,8 +62,7 @@ public class CameraLiveManager extends AbsCameraScenario<CloudRoadData> implemen
(int) AbsMogoApplication.getApp().getResources()
.getDimension(R.dimen.module_video_window_height_content));
ExtensionServiceManager
.getMogoTopViewManager()
MogoApisHandler.getInstance().getApis().getTopViewManager()
.addViewNoLinkage(getV2XWindow().getView(), layoutParams, this);
getV2XWindow().show(getmCloudRoadData());
isShowWindow = true;

View File

@@ -9,6 +9,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.CloudRoadData;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.live.listener.CameraLiveWindowStatusListener;
@@ -59,9 +60,7 @@ public class PushCameraLiveWindow extends RelativeLayout implements ICameraWindo
pushVideoClose = findViewById(R.id.pushVideoClose);
pushVideoClose.setOnClickListener(v -> {
//移除窗体
ExtensionServiceManager
.getMogoTopViewManager()
.removeViewNoLinkage(this);
MogoApisHandler.getInstance().getApis().getTopViewManager().removeViewNoLinkage(this);
});
}
@@ -75,8 +74,8 @@ public class PushCameraLiveWindow extends RelativeLayout implements ICameraWindo
if (!TextUtils.isEmpty(entity.getRtmpUrl())) {
Logger.w(TAG, "entity.getRtmpUrl() = " + entity.getRtmpUrl());
mIvReportHead.setVisibility(INVISIBLE);
ExtensionServiceManager.getImageLoader()
.displayImage(entity.getRtmpUrl(), mIvReportHead);
MogoApisHandler.getInstance().getApis().getImageLoaderApi().displayImage(entity.getRtmpUrl(),
mIvReportHead);
mLiveGSYVideoView.startLive(entity.getRtmpUrl());
}
@@ -98,13 +97,11 @@ public class PushCameraLiveWindow extends RelativeLayout implements ICameraWindo
}
//移除窗体
ExtensionServiceManager
.getMogoTopViewManager()
.removeView(this);
MogoApisHandler.getInstance().getApis().getTopViewManager().removeViewNoLinkage(this);
}
/**
* 窗体倒计时 TODO
* 窗体倒计时
*/
public void countDownV2XEvent(CloudRoadData data) {
// 倒计时
@@ -112,9 +109,7 @@ public class PushCameraLiveWindow extends RelativeLayout implements ICameraWindo
runnableV2XEvent = () -> {
//Logger.d(MODULE_NAME, "V2X=== Window 30秒倒计时结束。。。");
//移除窗体
ExtensionServiceManager
.getMogoTopViewManager()
.removeViewNoLinkage(this);
MogoApisHandler.getInstance().getApis().getTopViewManager().removeViewNoLinkage(this);
};
} else {
handlerV2XEvent.removeCallbacks(runnableV2XEvent);

View File

@@ -16,7 +16,6 @@ import com.mogo.module.common.entity.MogoSnapshotSetData;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.live.CameraLiveManager;
import com.mogo.module.extensions.live.CameraWindow3DAdapter;
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;
@@ -32,8 +31,8 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
private Context mContext;
private static IMogoMarker mMogoMarker;
private CloudRoadData mCloudRoadData;
private boolean isVrMode;
private boolean isVrModeMarker;
private volatile boolean isVrMode;
private volatile boolean isVrModeMarker;
private volatile String mCurrentUuid;
@@ -56,6 +55,8 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
return false;
}
});
// loadMarker(false);
}
public void release() {
@@ -64,14 +65,32 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
}
public void enterVrMode() {
Logger.d(TAG, "进入vr模式===");
Logger.d(TAG, "进入vr模式=========");
isVrMode = true;
// loadMarker(true);
}
public void exitVrMode() {
Logger.d(TAG, "退出vr模式===");
Logger.d(TAG, "退出vr模式=========");
isVrMode = false;
// loadMarker(false);
}
//test
private void loadMarker(boolean isVrMode) {
mCloudRoadData = new CloudRoadData();
mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
mCloudRoadData.setLat(40.200583);
mCloudRoadData.setLon(116.738538);
mCloudRoadData.setUuid("10011");
if (isVrMode) {
addVrCameraMarker(mCloudRoadData);
} else {
addNormalCameraMarker(mCloudRoadData);
}
}
/**
@@ -81,7 +100,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
* @param roadData
*/
private void addVrCameraMarker(CloudRoadData roadData) {
Logger.d(TAG, "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
Log.d(TAG, "addVrCameraMarker --lat = " + roadData.getLat() + "--lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
if (!TextUtils.isEmpty(roadData.getRtmpUrl())) {
removeCameraMarker();
MogoMarkerOptions options = new MogoMarkerOptions()
@@ -92,7 +111,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.icon_space, null);
options.icon(bitmap);
mMogoMarker = ExtensionServiceManager.getMapService().getMarkerManager(mContext)
mMogoMarker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext)
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
if (mMogoMarker != null) {
mMogoMarker.setInfoWindowAdapter(new CameraWindow3DAdapter(AbsMogoApplication.getApp(), options));
@@ -108,10 +127,12 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
* @param roadData
*/
private void addNormalCameraMarker(CloudRoadData roadData) {
Logger.d(TAG, "addNormalCameraMarker --lat = " + roadData.getLat() + " --lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
Log.d(TAG, "addNormalCameraMarker --lat = " + roadData.getLat() + " --lon =" + roadData.getLon() + "--uuid = " + roadData.getUuid() + "---rtmpUrl =" + roadData.getRtmpUrl());
if (!TextUtils.isEmpty(roadData.getRtmpUrl())) {
removeCameraMarker();
mMogoMarker.hideInfoWindow();
if (mMogoMarker != null) {
mMogoMarker.hideInfoWindow();
}
MogoMarkerOptions options = new MogoMarkerOptions()
.object(roadData)
.latitude(roadData.getLat())
@@ -120,7 +141,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.module_camera_normal_traffic, null);
options.icon(bitmap);
mMogoMarker = ExtensionServiceManager.getMapService().getMarkerManager(mContext)
mMogoMarker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext)
.addMarker(PushDataType.TYPE_PUSH_CAMERA_DATA, options);
if (mMogoMarker != null) {
mMogoMarker.setOwner(PushDataType.TYPE_PUSH_CAMERA_DATA);
@@ -153,19 +174,19 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
if (obj != null) {
if (obj.getCamera() != null && !TextUtils.isEmpty(obj.getCamera().getRtmpUrl())) {
mCloudRoadData = obj.getCamera();
Log.d(TAG, "onMsgReceived getRtmpUrl = " + mCloudRoadData.getRtmpUrl() + "--- isVrMode = " + isVrMode + ">>>>mCurrentUuid = " + mCurrentUuid + ">>>mCloudRoadData.getUuid() = " + mCloudRoadData.getUuid());
Log.d(TAG, "onMsgReceived getRtmpUrl = " + mCloudRoadData.getRtmpUrl() + "--- isVrMode = " + isVrMode + " ---isVrModeMarker = " + isVrModeMarker + ">>>>mCurrentUuid = " + mCurrentUuid + ">>>mCloudRoadData.getUuid() = " + mCloudRoadData.getUuid());
if (TextUtils.equals(mCurrentUuid, mCloudRoadData.getUuid())) {
if (isVrMode == isVrModeMarker) {
// do nothing.
Log.e(TAG, "-------------1------------");
} else {
if (isVrMode) {
Log.d(TAG, "-------------2------------");
addVrCameraMarker(mCloudRoadData);
isVrModeMarker = true;
Log.d(TAG, "-------------2------------");
} else {
addNormalCameraMarker(mCloudRoadData);
Log.d(TAG, "-------------3------------");
addNormalCameraMarker(mCloudRoadData);
isVrModeMarker = false;
}
}
@@ -183,11 +204,15 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener<M
}
} else {
//删除marker
Logger.e(TAG, "onMsgReceived mCloudRoadData == null ");
if (obj.getCamera() != null) {
Log.e(TAG, "onMsgReceived RtmpUrl() = " + obj.getCamera().getRtmpUrl());
} else {
Log.e(TAG,"obj.getCamera() == null ----------- ");
}
removeCameraMarker();
}
} else {
Logger.e(TAG, "onMsgReceived obj == null ");
Log.e(TAG, "onMsgReceived obj == null ");
}
}