From 0fc496c4f520ff0e3d15d5e35fb15412a6e1f11c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Tue, 9 Feb 2021 15:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=90=91=E5=A4=96=E7=9A=84=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/cloud/BaseLiveActivity.java | 9 ++++++--- .../java/com/mogo/cloud/LivePushActivity.java | 18 ++++++++++++++++++ app/src/main/res/layout/activity_live_push.xml | 8 ++++++++ app/src/main/res/values/colors.xml | 2 ++ .../cloud/live/manager/ILiveStreamManager.java | 8 ++++++++ .../live/manager/LiveStreamManagerImpl.java | 18 +++++++++++++++++- gradle.properties | 18 +++++++++--------- 7 files changed, 68 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java b/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java index c071752..48c4c57 100644 --- a/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java +++ b/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java @@ -28,10 +28,11 @@ public abstract class BaseLiveActivity extends AppCompatActivity { // 开始直播 protected ToggleButton btnLive; // 保存文件到本地 - private ToggleButton btnSaveFile; + protected ToggleButton btnSaveFile; // 设置摄像头与状态 - private ToggleButton btnChangeCameraState; - + protected ToggleButton btnChangeCameraState; + // 当前直播的状态 + protected ToggleButton tbLiveStatus; // 相机数据预览 protected SurfaceView surfaceView; @@ -64,6 +65,8 @@ public abstract class BaseLiveActivity extends AppCompatActivity { toggleCameraState(isChecked); }); + tbLiveStatus = findViewById(R.id.tbLiveStatus); + initCamer(); } diff --git a/app/src/main/java/com/mogo/cloud/LivePushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java index 8829eee..639510f 100644 --- a/app/src/main/java/com/mogo/cloud/LivePushActivity.java +++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java @@ -3,6 +3,7 @@ package com.mogo.cloud; import android.os.Bundle; import android.util.Log; +import com.mogo.cloud.live.listener.ILiveStatusListener; import com.mogo.cloud.live.manager.ILiveStreamManager; import com.mogo.cloud.live.manager.LiveStreamManagerImpl; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; @@ -22,6 +23,23 @@ public class LivePushActivity extends BaseLiveActivity { // 初始化直播流管理 liveStreamManager = LiveStreamManagerImpl.getInstance(this, MoGoAiCloudClientConfig.getInstance().getThirdPartyDeviceId()); + liveStreamManager.setLiveStatusChangeCallback(new ILiveStatusListener() { + @Override + public void onChange(String camId, int status) { + tbLiveStatus.post(new Runnable() { + @Override + public void run() { + if (status == 0) { + tbLiveStatus.setTextColor(getResources().getColor(R.color.colorStartLive)); + tbLiveStatus.setChecked(true); + } else { + tbLiveStatus.setTextColor(getResources().getColor(R.color.colorStopLive)); + tbLiveStatus.setChecked(false); + } + } + }); + } + }); } @Override diff --git a/app/src/main/res/layout/activity_live_push.xml b/app/src/main/res/layout/activity_live_push.xml index 7b4d0e8..85a2a1b 100644 --- a/app/src/main/res/layout/activity_live_push.xml +++ b/app/src/main/res/layout/activity_live_push.xml @@ -8,6 +8,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> + #6200EE #3700B3 #03DAC5 + #4CAF50 + #F44336 \ No newline at end of file diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/ILiveStreamManager.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/ILiveStreamManager.java index 8d5ae0e..94cac83 100644 --- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/ILiveStreamManager.java +++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/ILiveStreamManager.java @@ -1,6 +1,8 @@ package com.mogo.cloud.live.manager; +import com.mogo.cloud.live.listener.ILiveStatusListener; + public interface ILiveStreamManager { /** * 开始直播 @@ -35,6 +37,12 @@ public interface ILiveStreamManager { */ void notifyYUVData(byte[] data, int width, int height, int type); + /** + * 直播状态改变时回调 + * @param changeCallback live status change callback + */ + void setLiveStatusChangeCallback(ILiveStatusListener changeCallback); + /** * 释放资源 */ diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/LiveStreamManagerImpl.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/LiveStreamManagerImpl.java index 87993f0..8e07f5c 100644 --- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/LiveStreamManagerImpl.java +++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/LiveStreamManagerImpl.java @@ -5,6 +5,7 @@ import android.os.Handler; import android.os.SystemClock; import android.util.Log; +import com.mogo.cloud.live.listener.ILiveStatusListener; import com.mogo.cloud.live.model.CommandModel; import com.mogo.cloud.live.server.PushService; import com.mogo.cloud.live.socket.SocketMsgUtils; @@ -38,6 +39,8 @@ public class LiveStreamManagerImpl implements ILiveStreamManager { private static final String C2 = "C_2"; //后置摄像头 private Handler mHandler; // 循环上报摄像头状态 private SocketMsgUtils mSocketMsgUtils; // Socket 长链接 + private ILiveStatusListener mLiveStatusCallback;// 直播状态回调 + public static ILiveStreamManager getInstance(Context context, String devicesId) { if (sInstance == null) { @@ -66,7 +69,6 @@ public class LiveStreamManagerImpl implements ILiveStreamManager { @Override public void onMsgReceived(CommandModel obj) { - Log.i(TAG, "onMsgReceived: obj=" + obj); Logger.i(TAG, "onMsgReceived: obj=" + obj + " systemClock :" + SystemClock.elapsedRealtime() + " SystemTime : " + System.currentTimeMillis()); livePushHandler(obj.getType(), obj.getVideoChannel()); } @@ -112,6 +114,11 @@ public class LiveStreamManagerImpl implements ILiveStreamManager { CameraFrameManager.getInstance().notifyYUVData(data, width, height, type); } + @Override + public void setLiveStatusChangeCallback(ILiveStatusListener changeCallback) { + this.mLiveStatusCallback = changeCallback; + } + @Override public void release() { try { @@ -123,6 +130,12 @@ public class LiveStreamManagerImpl implements ILiveStreamManager { } } + private void liveStatusCallbackOnChange(String camId, int status) { + if (mLiveStatusCallback != null) { + mLiveStatusCallback.onChange(camId, status); + } + } + /** * 开启摄像头状态循环 */ @@ -169,7 +182,10 @@ public class LiveStreamManagerImpl implements ILiveStreamManager { PushService.startService(mContext, PushService.ACTION_FORCED_STOP_RTMP_PUSH, LiveStreamManagerImpl.mDevicesId); } + // 记录直播状态 sCam1LiveStatus = status; + // 向外同步状态 + liveStatusCallbackOnChange(C1, sCam1LiveStatus); } else { Log.d(TAG, "目前只支持前置行车记录仪"); } diff --git a/gradle.properties b/gradle.properties index a425807..36fceb8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,12 +29,12 @@ PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 RELEASE=true # AI CLOUD 云平台 -MOGO_UTILS_VERSION=1.0.13-SNAPSHOT -MOGO_NETWORK_VERSION=1.0.13-SNAPSHOT -MOGO_HTTPDNS_VERSION=1.0.13-SNAPSHOT -MOGO_PASSPORT_VERSION=1.0.13-SNAPSHOT -MOGO_SOCKET_VERSION=1.0.13-SNAPSHOT -MOGO_REALTIME_VERSION=1.0.13-SNAPSHOT -MOGO_TANLU_VERSION=1.0.13-SNAPSHOT -MOGO_LIVE_VERSION=1.0.13-SNAPSHOT -MOGO_TRAFFICLIVE_VERSION=1.0.13-SNAPSHOT +MOGO_UTILS_VERSION=1.0.14-SNAPSHOT +MOGO_NETWORK_VERSION=1.0.14-SNAPSHOT +MOGO_HTTPDNS_VERSION=1.0.14-SNAPSHOT +MOGO_PASSPORT_VERSION=1.0.14-SNAPSHOT +MOGO_SOCKET_VERSION=1.0.14-SNAPSHOT +MOGO_REALTIME_VERSION=1.0.14-SNAPSHOT +MOGO_TANLU_VERSION=1.0.14-SNAPSHOT +MOGO_LIVE_VERSION=1.0.14-SNAPSHOT +MOGO_TRAFFICLIVE_VERSION=1.0.14-SNAPSHOT