From f26e095026e1eb979be556ce2ce817031fe1f9dd Mon Sep 17 00:00:00 2001 From: Barney Date: Mon, 1 Aug 2022 14:11:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E6=B8=AC=E8=A9=A6=E5=A4=9A?= =?UTF-8?q?=E7=95=AB=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 4 +- app/build.gradle | 1 + .../gstreamer_demo_app/MainActivity.java | 61 ++++++++++++-- app/src/main/res/layout/activity_main.xml | 80 ++++++++++++++++++- 4 files changed, 134 insertions(+), 12 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 8fda779..97a51b0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 99cd0c1..403af93 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,6 +34,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation project(path: ':gstreamer_player') + implementation 'androidx.gridlayout:gridlayout:1.0.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/MainActivity.java b/app/src/main/java/com/ray650128/gstreamer_demo_app/MainActivity.java index 2364de6..e7e4643 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/MainActivity.java +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/MainActivity.java @@ -5,20 +5,38 @@ import android.util.Log; import androidx.appcompat.app.AppCompatActivity; +import com.hisharp.gstreamer_player.GStreamerSurfaceView; import com.hisharp.gstreamer_player.GstCallback; import com.hisharp.gstreamer_player.GstLibrary; import com.hisharp.gstreamer_player.GstStatus; import com.ray650128.gstreamer_demo_app.databinding.ActivityMainBinding; +import java.util.ArrayList; + public class MainActivity extends AppCompatActivity implements GstCallback { private String TAG = MainActivity.class.getSimpleName(); private ActivityMainBinding binding; - private GstLibrary gstLibrary; + //private GstLibrary gstLibrary; - private final String defaultMediaUri = "rtsp://admin:admin@192.168.0.77:554/media/video2"; + //private final String defaultMediaUri = "rtsp://admin:admin@192.168.0.77:554/media/video2"; + + private final ArrayList gstLibraries = new ArrayList(); + private final String[] defaultMediaUris = { + "rtsp://admin:admin@192.168.0.77:554/media/video2", + "rtsp://admin:123456@192.168.0.80:554/profile2", + "rtsp://admin:123456@192.168.0.83:554/profile2", + "rtsp://admin:123456@192.168.0.84:554/profile2", + "rtsp://admin:admin@192.168.0.86:554/v2", + "rtsp://admin:admin@192.168.0.89:554/v02", + "rtsp://admin:1q2w3e4r!@60.249.32.50:554/unicast/c7/s1/live", + "rtsp://admin:1q2w3e4r!@60.249.32.50:554/unicast/c8/s1/live", + "rtsp://admin:1q2w3e4r!@60.249.32.50:554/unicast/c9/s1/live" + }; + + private final ArrayList videoViews = new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,30 +44,59 @@ public class MainActivity extends AppCompatActivity implements GstCallback { binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - gstLibrary = new GstLibrary(this, defaultMediaUri); + videoViews.add(binding.surfaceVideo1); + videoViews.add(binding.surfaceVideo2); + videoViews.add(binding.surfaceVideo3); + videoViews.add(binding.surfaceVideo4); + videoViews.add(binding.surfaceVideo5); + videoViews.add(binding.surfaceVideo6); + videoViews.add(binding.surfaceVideo7); + videoViews.add(binding.surfaceVideo8); + videoViews.add(binding.surfaceVideo9); - gstLibrary.setSurfaceView(binding.surfaceVideo); + for (int i = 0; i < 1; i++) { + gstLibraries.add(new GstLibrary(this, defaultMediaUris[i])); + gstLibraries.get(i).setSurfaceView(videoViews.get(i)); + gstLibraries.get(i).setOnStatusChangeListener(this); + } + + binding.buttonPlay.setOnClickListener(view -> gstLibraries.forEach(GstLibrary::play)); + + binding.buttonStop.setOnClickListener(view -> gstLibraries.forEach(GstLibrary::stop)); + + /*gstLibrary = new GstLibrary(this, defaultMediaUri); + + gstLibrary.setSurfaceView(binding.surfaceVideo1); gstLibrary.setOnStatusChangeListener(this); binding.buttonPlay.setOnClickListener(view -> gstLibrary.play()); - binding.buttonStop.setOnClickListener(view -> gstLibrary.stop()); + binding.buttonStop.setOnClickListener(view -> gstLibrary.stop());*/ } @Override protected void onPause() { super.onPause(); - if (gstLibrary != null) { + /*if (gstLibrary != null) { gstLibrary.stop(); + }*/ + + if (!gstLibraries.isEmpty()) { + gstLibraries.forEach(GstLibrary::stop); } } @Override protected void onDestroy() { super.onDestroy(); - if (gstLibrary != null) { + + /*if (gstLibrary != null) { gstLibrary.release(); + }*/ + + if (!gstLibraries.isEmpty()) { + gstLibraries.forEach(GstLibrary::release); } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 480d7a9..2043617 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,6 @@ - + android:layout_gravity="center" + app:columnCount="3" + app:rowCount="3"> + + + + + + + + + + + + + + + + + + +