diff --git a/app/src/main/java/com/mogo/cloud/LivePushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java index 574d100..e475248 100644 --- a/app/src/main/java/com/mogo/cloud/LivePushActivity.java +++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java @@ -1,7 +1,6 @@ package com.mogo.cloud; import android.os.Bundle; -import android.util.Log; import com.mogo.cloud.live.manager.CameraFrameManager; import com.mogo.cloud.live.manager.ILiveStreamManager; @@ -21,7 +20,6 @@ public class LivePushActivity extends BaseLiveActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // 初始化直播流管理 ILiveStreamManager liveStreamManager = LiveStreamManagerImpl.getInstance(this, Devices.getSn()); liveStreamManager.uploadCamStatus(1, 1); @@ -29,22 +27,13 @@ public class LivePushActivity extends BaseLiveActivity { @Override public void onVideoFrame(byte[] bytes, int bytesLength) { - if (!isLive) { - return; - } //Log.i(TAG, "onVideoFrame byte length: " + bytesLength); CameraFrameManager.getInstance().notifyYUVData(bytes, 1280, 720, 3); } @Override public void toggleLive(boolean isLive) { - Log.i(TAG, "toggleLive : " + isLive); - this.isLive = isLive; - if (isLive) { - PushService.startService(this, PushService.ACTION_START_RTMP_PUSH, Devices.getSn()); - } else { - PushService.startService(this, PushService.ACTION_STOP_RTMP_PUSH, null); - } + } @Override diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/CameraFrameManager.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/CameraFrameManager.java index f232803..ca1ca4a 100644 --- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/CameraFrameManager.java +++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/CameraFrameManager.java @@ -103,7 +103,7 @@ public class CameraFrameManager { } private void dispatchData(byte[] data) { - if (globalDataListener != null && globalDataListener.size() > 0) { + if (globalDataListener.size() > 0) { for (IYUVDataListener callback : globalDataListener) { if (callback != null) { callback.onFrame(data); 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 c429e33..fabae5e 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 @@ -472,7 +472,6 @@ public class MoGoLiveManager { * 停止观看直播 */ public void onDestroyLive() { - stopPreview(); logOutRoom(); destroyEngine(); } diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/socket/SocketMsgUtils.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/socket/SocketMsgUtils.java index 923f4a6..f123665 100644 --- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/socket/SocketMsgUtils.java +++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/socket/SocketMsgUtils.java @@ -3,7 +3,6 @@ package com.mogo.cloud.live.socket; import android.content.Context; import android.util.Log; -import com.mogo.cloud.live.model.CommandModel; import com.mogo.cloud.socket.IMogoCloudSocketMsgAckListener; import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener; import com.mogo.cloud.socket.MsgBody; @@ -12,8 +11,7 @@ import com.mogo.cloud.socket.SocketManager; /** * Socket常链接工具类 */ -public class SocketMsgUtils implements IMogoCloudSocketMsgAckListener, - IMogoCloudSocketOnMessageListener { +public class SocketMsgUtils implements IMogoCloudSocketMsgAckListener { private static final String TAG = "SocketMsgUtils"; private static final String appId = "liveStream"; @@ -23,31 +21,33 @@ public class SocketMsgUtils implements IMogoCloudSocketMsgAckListener, private SocketManager mSocketManager; private Context mContext; + private IMogoCloudSocketOnMessageListener mMessageListener; - public static SocketMsgUtils getInstance(Context context) { + public static SocketMsgUtils getInstance(Context context, IMogoCloudSocketOnMessageListener listener) { if (sInstance == null) { synchronized (SocketMsgUtils.class) { if (sInstance == null) { - sInstance = new SocketMsgUtils(context.getApplicationContext()); + sInstance = new SocketMsgUtils(context.getApplicationContext(), listener); } } } return sInstance; } - private SocketMsgUtils(Context context) { + private SocketMsgUtils(Context context, IMogoCloudSocketOnMessageListener listener) { mContext = context; - initSocket(); + initSocket(listener); } /** * 初始化长连接 */ - private void initSocket() { + private void initSocket(IMogoCloudSocketOnMessageListener listener) { Log.i(TAG, "初始化长连接……"); mSocketManager = SocketManager.getInstance(); + mMessageListener = listener; mSocketManager.init(mContext); - mSocketManager.registerOnMessageListener(401017, this); + mSocketManager.registerOnMessageListener(401017, listener); } /** @@ -64,22 +64,11 @@ public class SocketMsgUtils implements IMogoCloudSocketMsgAckListener, */ public void release() { mSocketManager.release(); - mSocketManager.unregisterOnMessageListener(401017, this); + mSocketManager.unregisterOnMessageListener(401017, mMessageListener); } @Override public void onAck(long msgId) { Log.i(TAG, "msgId=" + msgId); - - } - - @Override - public Class target() { - return CommandModel.class; - } - - @Override - public void onMsgReceived(CommandModel obj) { - Log.i(TAG, "onMsgReceived: obj=" + obj); } } diff --git a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/utils/LiveStreamUtils.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/utils/LiveStreamUtils.java index e22053d..b5075ca 100644 --- a/foudations/mogo-live/src/main/java/com/mogo/cloud/live/utils/LiveStreamUtils.java +++ b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/utils/LiveStreamUtils.java @@ -4,27 +4,25 @@ import android.content.Context; import android.os.Handler; import android.util.Log; -import com.mogo.cloud.live.listener.BizMessageListener; import com.mogo.cloud.live.listener.ILiveStatusListener; import com.mogo.cloud.live.manager.CameraFrameManager; import com.mogo.cloud.live.manager.LiveStreamManagerImpl; +import com.mogo.cloud.live.model.CommandModel; import com.mogo.cloud.live.server.PushService; -import com.mogo.cloud.live.socket.IotMessageType; import com.mogo.cloud.live.socket.SocketMsgUtils; import com.mogo.cloud.live.socket.SocketRequestUtils; +import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener; import com.mogo.cloud.socket.MsgBody; -import org.json.JSONObject; -import static com.mogo.cloud.live.socket.IotMessageType.MSG_LIVE_PUSH_STATUS; - - -public class LiveStreamUtils implements BizMessageListener { +public class LiveStreamUtils implements IMogoCloudSocketOnMessageListener { private static final String TAG = "LiveStreamUtils"; private static final int POLL_TIME = 30 * 1000; // 循环上报摄像头可直播状态间隔时间 private static final int PUSH_CAM_TIME = 10 * 60 * 1000; + // 开始 private static final int PUSH_START = 0; + // 结束 private static final int PUSH_STOP = 1; private static final String C1 = "C_1"; //前置摄像头 private static final String C2 = "C_2"; //后置摄像头 @@ -37,6 +35,7 @@ public class LiveStreamUtils implements BizMessageListener { private ILiveStatusListener mLiveStatusCallback; private Context mContext; private Handler mHandler; + private SocketMsgUtils mSocketMsgUtils; public static LiveStreamUtils getInstance(Context context) { if (sInstance == null) { @@ -56,13 +55,12 @@ public class LiveStreamUtils implements BizMessageListener { initPoll(); } - /** * 初始化 */ private void init() { // 初始化Socket长连接通道 - SocketMsgUtils.getInstance(mContext); + mSocketMsgUtils = SocketMsgUtils.getInstance(mContext, this); } /** @@ -102,28 +100,16 @@ public class LiveStreamUtils implements BizMessageListener { msgBody.msgType(196614); msgBody.content(SocketRequestUtils.buildDeviceData(cam1Status, cam2Status)); - SocketMsgUtils.getInstance(mContext).uploadCamInfo(msgBody); - } - - @Override - public void onMessageReceived(IotMessageType type, String content) { - if (type == MSG_LIVE_PUSH_STATUS) { - Log.d(TAG, content); - rtmpPushHandler(content); - } + mSocketMsgUtils.uploadCamInfo(msgBody); } /** * 接收到长连接指令 * - * @param str 指令数据 + * @param videoChannel 指令数据 */ - private void rtmpPushHandler(String str) { + private void rtmpPushHandler(int status, String videoChannel) { try { - JSONObject content = new JSONObject(str); - int status = content.optInt("status"); - String videoChannel = content.optString("videoChannel"); - // 前置摄像头 if (C1.equals(videoChannel)) { // 停止直播 @@ -197,9 +183,20 @@ public class LiveStreamUtils implements BizMessageListener { try { sCam1LiveStatus = 0; sCam2LiveStatus = 0; - SocketMsgUtils.getInstance(mContext).release(); + mSocketMsgUtils.release(); } catch (Exception e) { e.printStackTrace(); } } + + @Override + public Class target() { + return CommandModel.class; + } + + @Override + public void onMsgReceived(CommandModel obj) { + Log.i(TAG, "onMsgReceived: obj=" + obj); + rtmpPushHandler(obj.getType(), obj.getVideoChannel()); + } } diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java index eca1d93..f14bd88 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -99,7 +99,7 @@ public class MoGoAiCloudClient { // 变量赋值 if (mAiCloudClientConfig != null) { - mAiCloudClientConfig.setSn(result.sn); + mAiCloudClientConfig.setSn("F803EB2046PZD00149"); mAiCloudClientConfig.setToken(result.token); }