From 4c60dd3b7da344c2fa131bb6822b1c16137dcde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 3 Mar 2021 16:31:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E7=9A=84=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 8 +++++--- .../com/mogo/cloud/LivePlayAndPushActivity.java | 2 +- .../java/com/mogo/cloud/LivePushActivity.java | 2 +- .../live/listener/ILiveStatusListener.java | 2 +- .../live/manager/LiveStreamManagerImpl.java | 17 +++++------------ .../cloud/live/manager/MoGoLiveManager.java | 17 +++++++++++++++++ 6 files changed, 30 insertions(+), 18 deletions(-) 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; + } + /** * 销毁即构引擎 */