diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7ea2c35..50e44c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,11 +45,13 @@
+ android:launchMode="singleTask"
+ android:windowSoftInputMode="stateHidden" />
+ android:launchMode="singleTask"
+ android:windowSoftInputMode="stateHidden" />
-
+
diff --git a/app/src/main/java/com/mogo/cloud/LivePlayAndPushActivity.java b/app/src/main/java/com/mogo/cloud/LivePlayAndPushActivity.java
index a5c6d21..5152f99 100644
--- a/app/src/main/java/com/mogo/cloud/LivePlayAndPushActivity.java
+++ b/app/src/main/java/com/mogo/cloud/LivePlayAndPushActivity.java
@@ -37,7 +37,7 @@ public class LivePlayAndPushActivity extends BaseLiveActivity
// 设置状态回调
liveStreamManager.setLiveStatusChangeCallback(new ILiveStatusListener() {
@Override
- public void onChange(String camId, int status) {
+ public void onChange(int status) {
tvLiveStatus.post(new Runnable() {
@Override
public void run() {
diff --git a/app/src/main/java/com/mogo/cloud/LivePushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java
index e7f0fda..8b1b6a0 100644
--- a/app/src/main/java/com/mogo/cloud/LivePushActivity.java
+++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java
@@ -27,7 +27,7 @@ public class LivePushActivity extends BaseLiveActivity {
// 设置状态回调
liveStreamManager.setLiveStatusChangeCallback(new ILiveStatusListener() {
@Override
- public void onChange(String camId, int status) {
+ public void onChange(int status) {
tvLiveStatus.post(new Runnable() {
@Override
public void run() {
diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/listener/ILiveStatusListener.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/listener/ILiveStatusListener.java
index 4c7a124..26d5fba 100644
--- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/listener/ILiveStatusListener.java
+++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/listener/ILiveStatusListener.java
@@ -4,5 +4,5 @@ package com.mogo.cloud.live.listener;
* 直播状态回调用
*/
public interface ILiveStatusListener {
- void onChange(String camId, int status);
+ void onChange(int status);
}
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 b5eb042..dd96388 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
@@ -38,7 +38,6 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
private static final String C2 = "C_2"; //后置摄像头
private Handler mHandler; // 循环上报摄像头状态
private SocketMsgUtils mSocketMsgUtils; // Socket 长链接
- private ILiveStatusListener mLiveStatusCallback;// 直播状态回调
private MoGoLivePushConfig mLivePushConfig;// 直播参数
private MoGoLiveManager mLivePusher; // 自研直播SDK
private static final int WIDTH = 1280;
@@ -137,8 +136,10 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
}
@Override
- public void setLiveStatusChangeCallback(ILiveStatusListener changeCallback) {
- this.mLiveStatusCallback = changeCallback;
+ public void setLiveStatusChangeCallback(ILiveStatusListener liveStatusListener) {
+ if (mLivePusher != null) {
+ mLivePusher.setLiveStatusListener(liveStatusListener);
+ }
}
@Override
@@ -152,12 +153,6 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
}
}
- private void liveStatusCallbackOnChange(String camId, int status) {
- if (mLiveStatusCallback != null) {
- mLiveStatusCallback.onChange(camId, status);
- }
- }
-
/**
* 开启摄像头状态循环
*/
@@ -177,7 +172,7 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
uploadCamStatus(sCam1AvailableStatus, sCam2AvailableStatus);
restartCamStatusLoop();
// 判断当前观众的个数,如果没人观看了的情况则停止直播
- if (mLivePusher.getOnlineNumber() <= 1) {
+ if (mLivePusher.isPushing() && mLivePusher.getOnlineNumber() <= 1) {
livePushHandler(PUSH_STOP, C1);
}
};
@@ -207,8 +202,6 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
}
// 记录直播状态
sCam1LiveStatus = status;
- // 向外同步状态
- liveStatusCallbackOnChange(C1, sCam1LiveStatus);
} else {
Logger.e(TAG, "目前只支持前置行车记录仪");
}
diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/MoGoLiveManager.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/MoGoLiveManager.java
index a5e9e88..bc5e47c 100644
--- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/MoGoLiveManager.java
+++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/MoGoLiveManager.java
@@ -7,6 +7,7 @@ import android.view.SurfaceView;
import com.mogo.cloud.live.listener.ILiveProgressListener;
import com.mogo.cloud.live.listener.ILiveRoomPersonListener;
+import com.mogo.cloud.live.listener.ILiveStatusListener;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.cloud.utils.logger.Logger;
@@ -92,6 +93,10 @@ public class MoGoLiveManager {
* 直播房间状态
*/
private ILiveRoomPersonListener mRoomStatusListener;
+ /**
+ * 直播状态回调
+ */
+ private ILiveStatusListener mLiveStatusListener;
/**
* 当前的房间ID
*/
@@ -277,6 +282,9 @@ public class MoGoLiveManager {
super.onPublisherStateUpdate(streamID, state, errorCode, extendedData);
Logger.i(TAG, "onPublisherStateUpdate streamID : " + streamID + " , state : " + state.name() + " , errorCode : " + errorCode);
isPushing = state == ZegoPublisherState.PUBLISHING;
+ if (mLiveStatusListener != null) {
+ mLiveStatusListener.onChange(isPushing ? 0 : 1);
+ }
}
// 拉流状态变更回调
@@ -308,6 +316,15 @@ public class MoGoLiveManager {
this.mRoomStatusListener = roomPersonListener;
}
+ /**
+ * 直播状态回调
+ *
+ * @param mLiveStatusListener 回调监听
+ */
+ public void setLiveStatusListener(ILiveStatusListener mLiveStatusListener) {
+ this.mLiveStatusListener = mLiveStatusListener;
+ }
+
/**
* 销毁即构引擎
*/