解决了异常终止直播的bug

This commit is contained in:
董宏宇
2021-03-04 13:35:48 +08:00
parent f56e77c682
commit 075df3dd4c
4 changed files with 48 additions and 37 deletions

View File

@@ -28,7 +28,7 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
private final Application mApplication;
// 循环上报摄像头可直播状态间隔时间
private static final int PUSH_CAM_TIME = 35 * 1000;
private static final int PUSH_CAM_TIME = 40 * 1000;
private static volatile int sCam1LiveStatus = 0, sCam2LiveStatus = 0;
private static volatile int sCam1AvailableStatus = 0, sCam2AvailableStatus = 0;
private static final int PUSH_START = 0; // 开始

View File

@@ -238,18 +238,20 @@ public class MoGoLiveManager {
@Override
public void onRoomStateUpdate(String roomID, ZegoRoomState state, int errorCode, JSONObject extendedData) {
super.onRoomStateUpdate(roomID, state, errorCode, extendedData);
Logger.i(TAG, "onRoomStateUpdate roomID : " + roomID +
" state:" + state +
" errorCode:" + errorCode);
//房间状态更新
if (mProgressListener != null) {
if (state == ZegoRoomState.CONNECTING) {
mProgressListener.onConnecting();
} else if (state == ZegoRoomState.CONNECTED) {
mProgressListener.onConnected(roomID);
} else {
onlineNumber = 0;
mProgressListener.onDisConnect();
// 这里只处理当前设备登录的房间中的用户总数
if (currentRoomId.equals(roomID)) {
Logger.i(TAG, "onRoomStateUpdate roomID : " + roomID +
" state:" + state +
" errorCode:" + errorCode);
//房间状态更新
if (mProgressListener != null) {
if (state == ZegoRoomState.CONNECTING) {
mProgressListener.onConnecting();
} else if (state == ZegoRoomState.CONNECTED) {
mProgressListener.onConnected(roomID);
} else {
mProgressListener.onDisConnect();
}
}
}
}
@@ -287,8 +289,11 @@ public class MoGoLiveManager {
@Override
public void onRoomExtraInfoUpdate(String roomID, ArrayList<ZegoRoomExtraInfo> roomExtraInfoList) {
super.onRoomExtraInfoUpdate(roomID, roomExtraInfoList);
Logger.i(TAG, "onRoomExtraInfoUpdate roomId : " + roomID +
" , roomExtraInfoList : " + roomExtraInfoList.size());
// 这里只处理当前设备登录的房间中的用户总数
if (currentRoomId.equals(roomID)) {
Logger.i(TAG, "onRoomExtraInfoUpdate roomId : " + roomID +
" , roomExtraInfoList : " + roomExtraInfoList.size());
}
}
// 推流状态回调
@@ -296,12 +301,15 @@ public class MoGoLiveManager {
public void onPublisherStateUpdate(String streamID, ZegoPublisherState state,
int errorCode, JSONObject extendedData) {
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);
// 这里只处理当前设备登录的房间中的用户总数
if (currentStreamId.equals(streamID)) {
Logger.i(TAG, "onPublisherStateUpdate streamID : " + streamID +
" , state : " + state.name() +
" , errorCode : " + errorCode);
isPushing = state == ZegoPublisherState.PUBLISHING;
if (mLiveStatusListener != null) {
mLiveStatusListener.onChange(isPushing ? 0 : 1);
}
}
}
@@ -309,11 +317,14 @@ public class MoGoLiveManager {
@Override
public void onPlayerStateUpdate(String streamID, ZegoPlayerState state, int errorCode, JSONObject extendedData) {
super.onPlayerStateUpdate(streamID, state, errorCode, extendedData);
Logger.i(TAG, "onPlayerStateUpdate streamId : " + streamID +
" , state : " + state.name() +
" , errorCode : " + errorCode +
" , extendData : " + extendedData.toString());
isPlaying = state == ZegoPlayerState.PLAYING;
// 这里查看的是别的房间
if (multiStreamId.equals(streamID)) {
Logger.i(TAG, "onPlayerStateUpdate streamId : " + streamID +
" , state : " + state.name() +
" , errorCode : " + errorCode +
" , extendData : " + extendedData.toString());
isPlaying = state == ZegoPlayerState.PLAYING;
}
}
};