diff --git a/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
index 46954bc..d93d41f 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
@@ -1,13 +1,13 @@
package com.casic.br.operationsite.view.check
import android.graphics.BitmapFactory
-import android.net.Uri
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.util.Base64
import android.util.Log
import android.view.View
+import android.widget.FrameLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.casic.br.operationsite.R
@@ -15,6 +15,7 @@
import com.casic.br.operationsite.extensions.initImmersionBar
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.utils.RuntimeCache
+import com.casic.br.operationsite.utils.VideoPlayerManager
import com.casic.br.operationsite.view.BigImageActivity
import com.casic.br.operationsite.view.WorkTaskActivity
import com.casic.br.operationsite.vm.AlarmViewModel
@@ -33,6 +34,7 @@
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.TitleBarView
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.shuyu.gsyvideoplayer.GSYVideoManager
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
@@ -129,12 +131,22 @@
ActivityStackManager.addActivity(this)
weakReferenceHandler = WeakReferenceHandler(this)
- //播放RTSP流
- binding.videoView.setVideoURI(Uri.parse(LocaleConstant.RTSP_URL))
- binding.videoView.setOnPreparedListener {
- binding.videoView.requestFocus()
- binding.videoView.start()
- }
+
+ //动态设置rtspPlayerView宽高
+ val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams
+ val videoWidth = getScreenWidth() - 30.dp2px(this)
+ val videoHeight = videoWidth * (9f / 16)
+ rtspViewParams.width = videoWidth
+ rtspViewParams.height = videoHeight.toInt()
+ binding.rtspPlayerView.layoutParams = rtspViewParams
+
+ val regionViewParams = binding.regionView.layoutParams as FrameLayout.LayoutParams
+ regionViewParams.width = videoWidth
+ regionViewParams.height = videoHeight.toInt()
+ binding.rtspPlayerView.layoutParams = regionViewParams
+
+ VideoPlayerManager.setGSYVideoPlayerOptions(binding.rtspPlayerView, LocaleConstant.RTSP_URL)
+ binding.rtspPlayerView.startPlayLogic()
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
@@ -278,8 +290,18 @@
override fun onDestroy() {
super.onDestroy()
- binding.videoView.suspend()
+ GSYVideoManager.releaseAllVideos()
timer.cancel()
webSocket?.close(1000, null)
}
+
+ override fun onPause() {
+ super.onPause()
+ GSYVideoManager.onPause()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ GSYVideoManager.onResume()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
index 46954bc..d93d41f 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/check/GuardiansActivity.kt
@@ -1,13 +1,13 @@
package com.casic.br.operationsite.view.check
import android.graphics.BitmapFactory
-import android.net.Uri
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.util.Base64
import android.util.Log
import android.view.View
+import android.widget.FrameLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.casic.br.operationsite.R
@@ -15,6 +15,7 @@
import com.casic.br.operationsite.extensions.initImmersionBar
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.utils.RuntimeCache
+import com.casic.br.operationsite.utils.VideoPlayerManager
import com.casic.br.operationsite.view.BigImageActivity
import com.casic.br.operationsite.view.WorkTaskActivity
import com.casic.br.operationsite.vm.AlarmViewModel
@@ -33,6 +34,7 @@
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.widget.TitleBarView
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.shuyu.gsyvideoplayer.GSYVideoManager
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
@@ -129,12 +131,22 @@
ActivityStackManager.addActivity(this)
weakReferenceHandler = WeakReferenceHandler(this)
- //播放RTSP流
- binding.videoView.setVideoURI(Uri.parse(LocaleConstant.RTSP_URL))
- binding.videoView.setOnPreparedListener {
- binding.videoView.requestFocus()
- binding.videoView.start()
- }
+
+ //动态设置rtspPlayerView宽高
+ val rtspViewParams = binding.rtspPlayerView.layoutParams as FrameLayout.LayoutParams
+ val videoWidth = getScreenWidth() - 30.dp2px(this)
+ val videoHeight = videoWidth * (9f / 16)
+ rtspViewParams.width = videoWidth
+ rtspViewParams.height = videoHeight.toInt()
+ binding.rtspPlayerView.layoutParams = rtspViewParams
+
+ val regionViewParams = binding.regionView.layoutParams as FrameLayout.LayoutParams
+ regionViewParams.width = videoWidth
+ regionViewParams.height = videoHeight.toInt()
+ binding.rtspPlayerView.layoutParams = regionViewParams
+
+ VideoPlayerManager.setGSYVideoPlayerOptions(binding.rtspPlayerView, LocaleConstant.RTSP_URL)
+ binding.rtspPlayerView.startPlayLogic()
alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java]
@@ -278,8 +290,18 @@
override fun onDestroy() {
super.onDestroy()
- binding.videoView.suspend()
+ GSYVideoManager.releaseAllVideos()
timer.cancel()
webSocket?.close(1000, null)
}
+
+ override fun onPause() {
+ super.onPause()
+ GSYVideoManager.onPause()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ GSYVideoManager.onResume()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_guardians.xml b/app/src/main/res/layout/activity_guardians.xml
index 3aa3799..f738a5c 100644
--- a/app/src/main/res/layout/activity_guardians.xml
+++ b/app/src/main/res/layout/activity_guardians.xml
@@ -30,18 +30,20 @@
+ android:layout_height="wrap_content">
-
+ android:layout_height="220dp"
+ android:layout_marginVertical="@dimen/dp_5"
+ android:clickable="false"
+ android:focusable="false" />
+ android:layout_height="220dp" />