From f7aa9f74d2fee0977e0090fd9b269278d01d6ac7 Mon Sep 17 00:00:00 2001 From: Raymond Yang Date: Thu, 9 Mar 2023 15:02:27 +0800 Subject: [PATCH] =?UTF-8?q?VideoViewAdapter.kt=E5=8A=A0=E4=B8=8A=E5=B0=8D?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9A=84SplitViewFragment.kt=E4=B8=8B?= =?UTF-8?q?=E6=8C=87=E4=BB=A4=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gstreamer_demo_app/ui/mainScreen/MainActivity.kt | 8 +++----- .../ui/mainScreen/SplitViewFragment.kt | 7 ++++--- .../ui/mainScreen/VideoViewAdapter.kt | 12 ++++++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/MainActivity.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/MainActivity.kt index 282023a..78e053d 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/MainActivity.kt +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/MainActivity.kt @@ -53,9 +53,7 @@ class MainActivity : AppCompatActivity() { } override fun onDestroy() { - for (i in 0 until splitVideoViewAdapter.itemCount) { - splitVideoViewAdapter.destroy(i) - } + splitVideoViewAdapter.destroy() super.onDestroy() } @@ -113,8 +111,8 @@ class MainActivity : AppCompatActivity() { private fun reloadVideoViews(list: List>?) = MainScope().launch { binding.viewPager.setCurrentItem(0, false) for (i in 0 until splitVideoViewAdapter.itemCount) { - splitVideoViewAdapter.pause(i) - splitVideoViewAdapter.destroy(i) + splitVideoViewAdapter.pause() + splitVideoViewAdapter.destroy() } //delay(oldSplitMode * Constants.CONF_DELAY_BASE_MILLIS) delay((oldSplitMode * 100) + Constants.CONF_DELAY_BASE_MILLIS) diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/SplitViewFragment.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/SplitViewFragment.kt index 03ea162..ac741b5 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/SplitViewFragment.kt +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/SplitViewFragment.kt @@ -162,6 +162,7 @@ class SplitViewFragment : Fragment() { } MainScope().launch { stopAll() + //delay(Constants.CONF_DELAY_BASE_MILLIS) delay(splitMode * Constants.CONF_DELAY_BASE_MILLIS) //delay((splitMode * 100) + Constants.CONF_DELAY_BASE_MILLIS) val item = data[position] @@ -211,13 +212,13 @@ class SplitViewFragment : Fragment() { } }.start() - fun destroyAll() /*= MainScope().launch(Dispatchers.Main)*/ { - if (videoViews.isEmpty()) return + fun destroyAll() = MainScope().launch(Dispatchers.Main) { + if (videoViews.isEmpty()) return@launch for (index in data.indices) { //videoViews[index].destroy() videoViews[index].destroySurface() } - }//.start() + }.start() companion object { private val TAG = SplitViewFragment::class.java.simpleName diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoViewAdapter.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoViewAdapter.kt index 0ec3db4..37e4f03 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoViewAdapter.kt +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoViewAdapter.kt @@ -41,6 +41,12 @@ class VideoViewAdapter( notifyDataSetChanged() } + fun pause() { + for (i in fragments.indices) { + pause(i) + } + } + fun pause(index: Int) { pause(fragments[index]) } @@ -57,6 +63,12 @@ class VideoViewAdapter( fragment.playAll() } + fun destroy() { + for (i in fragments.indices) { + destroy(i) + } + } + fun destroy(index: Int) { destroy(fragments[index]) }