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