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" />