From f325f43171aed36ba51557ef5340f1758bdb1543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 3 Feb 2021 17:46:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E7=9A=84=E6=8B=89=E6=B5=81demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 7 +- .../java/com/mogo/cloud/BaseLiveActivity.java | 2 +- .../java/com/mogo/cloud/LivePlayActivity.java | 101 ++++++++++++++++++ ...ushActivity.java => LivePushActivity.java} | 2 +- .../java/com/mogo/cloud/MainActivity.java | 15 ++- .../main/res/layout/activity_live_play.xml | 35 ++++++ ..._push_video.xml => activity_live_push.xml} | 0 app/src/main/res/layout/activity_main.xml | 7 +- 8 files changed, 160 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/com/mogo/cloud/LivePlayActivity.java rename app/src/main/java/com/mogo/cloud/{PushActivity.java => LivePushActivity.java} (95%) create mode 100644 app/src/main/res/layout/activity_live_play.xml rename app/src/main/res/layout/{activity_push_video.xml => activity_live_push.xml} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cb61520..39ebcdd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,8 +33,11 @@ + android:name=".LivePushActivity" + android:label="直播播放" /> + diff --git a/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java b/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java index 90fde31..5443965 100644 --- a/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java +++ b/app/src/main/java/com/mogo/cloud/BaseLiveActivity.java @@ -38,7 +38,7 @@ public abstract class BaseLiveActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_push_video); + setContentView(R.layout.activity_live_push); surfaceView = findViewById(R.id.surfaceView); btnLive = findViewById(R.id.btnLive); diff --git a/app/src/main/java/com/mogo/cloud/LivePlayActivity.java b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java new file mode 100644 index 0000000..7f08869 --- /dev/null +++ b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java @@ -0,0 +1,101 @@ +package com.mogo.cloud; + +import android.os.Bundle; +import android.util.Log; +import android.view.SurfaceHolder; +import android.view.SurfaceView; +import android.widget.EditText; +import android.widget.Toast; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; + +import com.mogo.cloud.live.listener.ILiveProgressListener; +import com.mogo.cloud.live.manager.ZeGoLiveManager; +import com.mogo.cloud.util.Devices; + + +public class LivePlayActivity extends AppCompatActivity { + private String TAG = "LiveActivity"; + + private SurfaceView surfaceView; + private ToggleButton liveToggleBtn; + private EditText etLookRoomId; + + private boolean isLoginSuccess = false; + private String mStreamId = "STREAM_ID_"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_live_play); + surfaceView = findViewById(R.id.surfaceView); + etLookRoomId = findViewById(R.id.etLookRoomId); + liveToggleBtn = findViewById(R.id.liveToggleBtn); + liveToggleBtn.setOnCheckedChangeListener((buttonView, isChecked) -> { + Toast.makeText(getApplicationContext(), buttonView.getText(), Toast.LENGTH_SHORT).show(); + if (isChecked) { + String roomId = etLookRoomId.getText().toString().trim(); + mStreamId = ZeGoLiveManager.STREAM_ID_PREFIX + roomId; + ZeGoLiveManager.getInstance().init(this.getApplication(), null); + ZeGoLiveManager.getInstance().loginRoom("F803EB2046PZD00140", roomId); + ZeGoLiveManager.getInstance().setLiveProgressListener(listener); + } else { + ZeGoLiveManager.getInstance().stopLive(mStreamId); + } + }); + } + + private ILiveProgressListener listener = new ILiveProgressListener() { + + @Override + public void onConnecting() { + + } + + @Override + public void onConnected(String roomId) { + Log.i(TAG, "onConnected:" + roomId); + isLoginSuccess = true; + toggleLive(true); + } + + @Override + public void onDisConnect() { + Log.i(TAG, "onDisConnect:"); + isLoginSuccess = false; + toggleLive(false); + } + + @Override + public void onDebugError(int errorCode, String funcName, String errorInfo) { + + } + + @Override + public void onRoomStreamUpdate(String streamId, boolean isLive) { + Log.i(TAG, "onRoomStreamUpdate:" + streamId); + if (streamId != null && isLive) { + Toast.makeText(LivePlayActivity.this, "主播开始直播了", Toast.LENGTH_SHORT).show(); + mStreamId = streamId; + } else { + Toast.makeText(LivePlayActivity.this, "主播已离线", Toast.LENGTH_SHORT).show(); + } + } + }; + + private void toggleLive(boolean isChecked) { + Log.i(TAG, "toggleLive status : " + isChecked + " , mStreamId : " + mStreamId); + if (isChecked) { + ZeGoLiveManager.getInstance().startLive(mStreamId, surfaceView); + } else { + ZeGoLiveManager.getInstance().stopLive(mStreamId); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + ZeGoLiveManager.getInstance().onDestroyLive(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/mogo/cloud/PushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java similarity index 95% rename from app/src/main/java/com/mogo/cloud/PushActivity.java rename to app/src/main/java/com/mogo/cloud/LivePushActivity.java index 5abd44d..964b2e2 100644 --- a/app/src/main/java/com/mogo/cloud/PushActivity.java +++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java @@ -11,7 +11,7 @@ import com.mogo.cloud.util.Devices; /** * 推流页面 */ -public class PushActivity extends BaseLiveActivity { +public class LivePushActivity extends BaseLiveActivity { public static final String TAG = "PushActivity"; private boolean isLive = false; diff --git a/app/src/main/java/com/mogo/cloud/MainActivity.java b/app/src/main/java/com/mogo/cloud/MainActivity.java index 53dbb26..5d1f0d9 100644 --- a/app/src/main/java/com/mogo/cloud/MainActivity.java +++ b/app/src/main/java/com/mogo/cloud/MainActivity.java @@ -18,7 +18,8 @@ public class MainActivity extends AppCompatActivity { private Button btnJumpNetWorkPort; private Button btnJumpRealTime; private Button btnJumpRoadCondition; - private Button btnJumpPushLive; + private Button btnJumpLivePush; + private Button btnJumpLivePlay; private TextView tvSn; private TextView tvToken; @@ -58,9 +59,15 @@ public class MainActivity extends AppCompatActivity { startActivity(intent); }); - btnJumpPushLive = findViewById(R.id.btnJumpPushLive); - btnJumpPushLive.setOnClickListener(v -> { - Intent intent = new Intent(MainActivity.this, PushActivity.class); + btnJumpLivePush = findViewById(R.id.btnJumpLivePush); + btnJumpLivePush.setOnClickListener(v -> { + Intent intent = new Intent(MainActivity.this, LivePushActivity.class); + startActivity(intent); + }); + + btnJumpLivePlay = findViewById(R.id.btnJumpLivePlay); + btnJumpLivePlay.setOnClickListener(v -> { + Intent intent = new Intent(MainActivity.this, LivePlayActivity.class); startActivity(intent); }); diff --git a/app/src/main/res/layout/activity_live_play.xml b/app/src/main/res/layout/activity_live_play.xml new file mode 100644 index 0000000..b3f5411 --- /dev/null +++ b/app/src/main/res/layout/activity_live_play.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_push_video.xml b/app/src/main/res/layout/activity_live_push.xml similarity index 100% rename from app/src/main/res/layout/activity_push_video.xml rename to app/src/main/res/layout/activity_live_push.xml diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b32e84a..b77ef12 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -67,10 +67,15 @@ android:text="路况服务测试" />