diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 201f1a5..3b5a07d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,13 +11,18 @@
android:theme="@style/Theme.Gstreamer">
+ android:exported="true"
+ android:screenOrientation="nosensor">
+
\ No newline at end of file
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 5ab3f61..4b4ee53 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
@@ -1,5 +1,6 @@
package com.ray650128.gstreamer_demo_app.ui.mainScreen
+import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
@@ -10,6 +11,7 @@ import androidx.gridlayout.widget.GridLayout
import com.ray650128.gstreamer_demo_app.databinding.FragmentSplitViewBinding
import com.ray650128.gstreamer_demo_app.dp
import com.ray650128.gstreamer_demo_app.model.Device
+import com.ray650128.gstreamer_demo_app.ui.monitoringScreen.MonitoringActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay
@@ -123,27 +125,32 @@ class SplitViewFragment : Fragment() {
}
setAllUrl()
- }
- }
- if (isClickable) {
- for (position in videoViews.indices) {
- videoViews[position].setOnClickListener {
- if (position >= data.size) return@setOnClickListener
- if (!videoViews[position].isPlaying) {
- if (!videoViews[position].isLoading) {
- videoViews[position].play()
+ if (isClickable) {
+ for (position in videoViews.indices) {
+ videoViews[position].setOnClickListener {
+ if (position >= data.size) return@setOnClickListener
+ if (!videoViews[position].isPlaying) {
+ if (!videoViews[position].isLoading) {
+ videoViews[position].retryCount = 0
+ videoViews[position].play()
+ }
+ return@setOnClickListener
+ }
+ stopAll()
+ val item = data[position]
+ val bundle = Bundle().apply {
+ //putInt(MonitoringActivity.BUNDLE_DEVICE_ID, item.id)
+ //putInt(MonitoringActivity.BUNDLE_CHANNEL_ID, item.channelId)
+ putParcelable(MonitoringActivity.BUNDLE_DEVICE, item)
+ }
+ val intent = Intent(requireContext(), MonitoringActivity::class.java)
+ intent.putExtras(bundle)
+ startActivity(intent)
+ //gotoActivity(MonitoringActivity::class.java, bundle)*/
+ //Log.d("${TAG}_$mPageNum", "check: $item")
}
- return@setOnClickListener
}
- /*stopAll()
- val item = data[position]
- val bundle = Bundle().apply {
- putInt(MonitoringActivity.BUNDLE_DEVICE_ID, item.id)
- putInt(MonitoringActivity.BUNDLE_CHANNEL_ID, item.channelId)
- }
- gotoActivity(MonitoringActivity::class.java, bundle)*/
- //Log.d("${TAG}_$mPageNum", "check: $item")
}
}
}
@@ -159,6 +166,7 @@ class SplitViewFragment : Fragment() {
fun playAll() = MainScope().launch(Dispatchers.Main) {
if (videoViews.isEmpty()) return@launch
for (index in data.indices) {
+ videoViews[index].retryCount = 0
videoViews[index].play()
delay(300)
}
diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt
index dc0b95a..fdf68d8 100644
--- a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt
+++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt
@@ -47,7 +47,7 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback {
field = value
}
- private var retryCount = 0
+ var retryCount = 0
private var retryRunnable = object : Runnable {
override fun run() {
play()
@@ -94,9 +94,9 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback {
}
fun play() {
- if (retryCount == RETRY_OFF) {
+ /*if (retryCount == RETRY_OFF) {
return
- }
+ }*/
videoView.postInvalidate()
gstLibrary.play()
}
diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/monitoringScreen/MonitoringActivity.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/monitoringScreen/MonitoringActivity.kt
new file mode 100644
index 0000000..131db77
--- /dev/null
+++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/monitoringScreen/MonitoringActivity.kt
@@ -0,0 +1,28 @@
+package com.ray650128.gstreamer_demo_app.ui.monitoringScreen
+
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.view.WindowManager
+import com.ray650128.gstreamer_demo_app.databinding.ActivityMainBinding
+import com.ray650128.gstreamer_demo_app.databinding.ActivityMonitoringBinding
+
+class MonitoringActivity : AppCompatActivity() {
+
+ private lateinit var binding: ActivityMonitoringBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ super.onCreate(savedInstanceState)
+
+ binding = ActivityMonitoringBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ }
+
+
+
+ companion object {
+ const val BUNDLE_DEVICE_ID = "BUNDLE_DEVICE_ID"
+ const val BUNDLE_CHANNEL_ID = "BUNDLE_CHANNEL_ID"
+ const val BUNDLE_DEVICE = "BUNDLE_DEVICE"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_monitoring.xml b/app/src/main/res/layout/activity_monitoring.xml
new file mode 100644
index 0000000..86d13a9
--- /dev/null
+++ b/app/src/main/res/layout/activity_monitoring.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file