修改了状态回调的时机

This commit is contained in:
董宏宇
2021-03-03 16:31:46 +08:00
parent 09be68f6ee
commit 4c60dd3b7d
6 changed files with 30 additions and 18 deletions

View File

@@ -45,11 +45,13 @@
<activity
android:name=".LivePlayAndPushActivity"
android:label="直播 推送 和 播放"
android:launchMode="singleTask" />
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden" />
<activity
android:name=".LivePlayActivity"
android:label="直播播放"
android:launchMode="singleTask" />
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.mogo.cloud.network.NetworkActivity"
android:label="网络测试"
@@ -65,7 +67,7 @@
<receiver android:name=".wifi.WifiBroadCastReceiver">
<intent-filter>
<action android:name="android.net.wifi.RSSI_CHANGED"/>
<action android:name="android.net.wifi.RSSI_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -4,5 +4,5 @@ package com.mogo.cloud.live.listener;
* 直播状态回调用
*/
public interface ILiveStatusListener {
void onChange(String camId, int status);
void onChange(int status);
}

View File

@@ -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, "目前只支持前置行车记录仪");
}

View File

@@ -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;
}
/**
* 销毁即构引擎
*/