diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 5674e0c..1f8e3ef 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -26,7 +26,6 @@ diff --git a/app/src/main/java/com/mogo/cloud/LivePlayActivity.java b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java index ced4618..a69631f 100644 --- a/app/src/main/java/com/mogo/cloud/LivePlayActivity.java +++ b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java @@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatActivity; import com.mogo.cloud.live.listener.ILiveProgressListener; import com.mogo.cloud.live.manager.MoGoLiveManager; +import com.mogo.cloud.util.Devices; public class LivePlayActivity extends AppCompatActivity { @@ -34,12 +35,11 @@ public class LivePlayActivity extends AppCompatActivity { Toast.makeText(getApplicationContext(), buttonView.getText(), Toast.LENGTH_SHORT).show(); if (isChecked) { String roomId = etLookRoomId.getText().toString().trim(); - mStreamId = MoGoLiveManager.STREAM_ID_PREFIX + roomId; MoGoLiveManager.getInstance().init(this.getApplication(), null); - MoGoLiveManager.getInstance().loginRoom("F803EB2046PZD00140", roomId); + MoGoLiveManager.getInstance().loginRoom(Devices.getSn(), roomId); MoGoLiveManager.getInstance().setLiveProgressListener(listener); } else { - MoGoLiveManager.getInstance().stopLive(mStreamId); + MoGoLiveManager.getInstance().stopLive(); } }); } @@ -83,12 +83,12 @@ public class LivePlayActivity extends AppCompatActivity { }; private void toggleLive(boolean isChecked) { - Log.i(TAG, "toggleLive status : " + isChecked + " , mStreamId : " + mStreamId); if (isChecked) { - MoGoLiveManager.getInstance().startLive(mStreamId, surfaceView); + mStreamId = MoGoLiveManager.getInstance().startLive(surfaceView); } else { - MoGoLiveManager.getInstance().stopLive(mStreamId); + MoGoLiveManager.getInstance().stopLive(); } + Log.i(TAG, "toggleLive status : " + isChecked + " , mStreamId : " + mStreamId); } @Override diff --git a/app/src/main/java/com/mogo/cloud/LivePushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java index 8cecf36..9ca3b3a 100644 --- a/app/src/main/java/com/mogo/cloud/LivePushActivity.java +++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java @@ -40,11 +40,11 @@ public class LivePushActivity extends BaseLiveActivity { 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); -// } + 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/MoGoLiveManager.java b/foudations/mogo-live/src/main/java/com/mogo/cloud/live/manager/MoGoLiveManager.java index 3431fa2..c429e33 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 @@ -2,10 +2,12 @@ package com.mogo.cloud.live.manager; import android.app.Application; import android.os.Environment; +import android.text.TextUtils; import android.util.Log; import android.view.SurfaceView; import com.mogo.cloud.live.listener.ILiveProgressListener; +import com.mogo.utils.logger.Logger; import org.json.JSONObject; @@ -88,6 +90,10 @@ public class MoGoLiveManager { * 当前的房间ID */ private String currentRoomId = ""; + /** + * 当前直播流ID + */ + private String currentStreamId = ""; /** * 自定义采集状态,true-初始化完成,false-没有初始化 */ @@ -288,8 +294,11 @@ public class MoGoLiveManager { public void loginRoom(String userId, String roomId) { initCustomVideoCapture(); currentRoomId = ROOM_ID_PREFIX + roomId; + currentStreamId = STREAM_ID_PREFIX + roomId; ZegoUser zegoUser = new ZegoUser(userId, NAME_PREFIX + userId); mExpressEngine.loginRoom(currentRoomId, zegoUser); + Log.i(TAG, "loginRoom userId:" + userId + " currentRoomId : " + currentRoomId + + " currentStreamId:" + currentStreamId); } /** @@ -373,22 +382,26 @@ public class MoGoLiveManager { /** * 开始直播 * - * @param streamId 直播流ID * @param surfaceView 渲染直播的视图 */ - public void startLive(String streamId, SurfaceView surfaceView) { - ZegoCanvas zegoCanvas = new ZegoCanvas(surfaceView); - zegoCanvas.viewMode = ZegoViewMode.SCALE_TO_FILL; - mExpressEngine.startPlayingStream(streamId, zegoCanvas); + public String startLive(SurfaceView surfaceView) { + if (!TextUtils.isEmpty(currentStreamId) && + !currentStreamId.equals(STREAM_ID_PREFIX)) { + ZegoCanvas zegoCanvas = new ZegoCanvas(surfaceView); + zegoCanvas.viewMode = ZegoViewMode.SCALE_TO_FILL; + mExpressEngine.startPlayingStream(currentStreamId, zegoCanvas); + } else { + Logger.e(TAG, "直播ID有误,请重试"); + } + + return currentStreamId; } /** * 停止直播 - * - * @param streamId 数据流ID */ - public void stopLive(String streamId) { - mExpressEngine.stopPlayingStream(streamId); + public void stopLive() { + mExpressEngine.stopPlayingStream(currentStreamId); stopPreview(); logOutRoom(); }