diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6dc1bff..3674d6d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,6 +39,10 @@
android:screenOrientation="landscape"
android:theme="@style/Theme.BigImageActivity" />
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6dc1bff..3674d6d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,6 +39,10 @@
android:screenOrientation="landscape"
android:theme="@style/Theme.BigImageActivity" />
+
+
diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
index cbdda93..e0244fe 100644
--- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
+++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
@@ -1,12 +1,10 @@
package com.casic.endoscope.view
import android.annotation.SuppressLint
-import android.content.pm.ActivityInfo
import android.os.Bundle
import android.os.Environment
import android.view.View
import android.widget.ImageView
-import androidx.activity.OnBackPressedCallback
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.casic.endoscope.R
@@ -18,6 +16,7 @@
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getStatusBarHeight
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
import kotlinx.coroutines.Dispatchers
@@ -52,16 +51,6 @@
}.toMutableList()
directoryAdapter.setRefreshData(dirBeans)
}
-
- //替换onBackPressed
- onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- GSYVideoManager.backFromWindowFull(context)
- //解决退出全屏后会被强制竖屏的问题
- requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
- finish()
- }
- })
}
override fun initOnCreate(savedInstanceState: Bundle?) {
@@ -93,10 +82,7 @@
lifecycleScope.launch(Dispatchers.Main) {
try {
val drawable = withContext(Dispatchers.IO) {
- Glide.with(context)
- .load(item)
- .submit()
- .get()
+ Glide.with(context).load(item).submit().get()
}
val coverImg = ImageView(context)
coverImg.setImageDrawable(drawable)
@@ -107,17 +93,12 @@
}
videoPlayer.setUp(item.absolutePath, true, "")
videoPlayer.fullscreenButton.setOnClickListener {
- videoPlayer.startWindowFullscreen(context, false, true)
+ navigatePageTo(item.absolutePath)
}
- //防止错位设置
videoPlayer.playTag = System.currentTimeMillis().toString()
videoPlayer.playPosition = childPos
- //是否根据视频尺寸,自动选择竖屏全屏或者横屏全屏
- videoPlayer.isAutoFullWithSize = true
- //音频焦点冲突时是否释放
videoPlayer.isReleaseWhenLossAudio = false
- //全屏动画
- videoPlayer.isShowFullAnimation = true
+ videoPlayer.setIsTouchWiget(false)
}
}
val offset = 10.dp2px(this)
@@ -157,4 +138,12 @@
super.onDestroy()
GSYVideoManager.releaseAllVideos()
}
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ if (GSYVideoManager.backFromWindowFull(this)) {
+ return
+ }
+ super.onBackPressed()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6dc1bff..3674d6d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,6 +39,10 @@
android:screenOrientation="landscape"
android:theme="@style/Theme.BigImageActivity" />
+
+
diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
index cbdda93..e0244fe 100644
--- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
+++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
@@ -1,12 +1,10 @@
package com.casic.endoscope.view
import android.annotation.SuppressLint
-import android.content.pm.ActivityInfo
import android.os.Bundle
import android.os.Environment
import android.view.View
import android.widget.ImageView
-import androidx.activity.OnBackPressedCallback
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.casic.endoscope.R
@@ -18,6 +16,7 @@
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getStatusBarHeight
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
import kotlinx.coroutines.Dispatchers
@@ -52,16 +51,6 @@
}.toMutableList()
directoryAdapter.setRefreshData(dirBeans)
}
-
- //替换onBackPressed
- onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- GSYVideoManager.backFromWindowFull(context)
- //解决退出全屏后会被强制竖屏的问题
- requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
- finish()
- }
- })
}
override fun initOnCreate(savedInstanceState: Bundle?) {
@@ -93,10 +82,7 @@
lifecycleScope.launch(Dispatchers.Main) {
try {
val drawable = withContext(Dispatchers.IO) {
- Glide.with(context)
- .load(item)
- .submit()
- .get()
+ Glide.with(context).load(item).submit().get()
}
val coverImg = ImageView(context)
coverImg.setImageDrawable(drawable)
@@ -107,17 +93,12 @@
}
videoPlayer.setUp(item.absolutePath, true, "")
videoPlayer.fullscreenButton.setOnClickListener {
- videoPlayer.startWindowFullscreen(context, false, true)
+ navigatePageTo(item.absolutePath)
}
- //防止错位设置
videoPlayer.playTag = System.currentTimeMillis().toString()
videoPlayer.playPosition = childPos
- //是否根据视频尺寸,自动选择竖屏全屏或者横屏全屏
- videoPlayer.isAutoFullWithSize = true
- //音频焦点冲突时是否释放
videoPlayer.isReleaseWhenLossAudio = false
- //全屏动画
- videoPlayer.isShowFullAnimation = true
+ videoPlayer.setIsTouchWiget(false)
}
}
val offset = 10.dp2px(this)
@@ -157,4 +138,12 @@
super.onDestroy()
GSYVideoManager.releaseAllVideos()
}
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ if (GSYVideoManager.backFromWindowFull(this)) {
+ return
+ }
+ super.onBackPressed()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt b/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt
new file mode 100644
index 0000000..cf81821
--- /dev/null
+++ b/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt
@@ -0,0 +1,74 @@
+package com.casic.endoscope.view
+
+import android.os.Bundle
+import android.view.View
+import com.casic.endoscope.R
+import com.casic.endoscope.databinding.ActivityFullScreenVideoBinding
+import com.casic.endoscope.extensions.initImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import com.shuyu.gsyvideoplayer.GSYVideoManager
+import com.shuyu.gsyvideoplayer.utils.OrientationUtils
+
+
+class FullScreenVideoActivity : KotlinBaseActivity() {
+
+ private var orientationUtils: OrientationUtils? = null
+
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ val videoPath = intent.getStringExtra(Constant.INTENT_PARAM)
+ binding.videoPlayer.setUp(videoPath, true, "")
+
+ binding.videoPlayer.titleTextView.visibility = View.GONE
+ binding.videoPlayer.fullscreenButton.visibility = View.GONE
+ //设置旋转
+ orientationUtils = OrientationUtils(this, binding.videoPlayer)
+ //是否可以滑动调整
+ binding.videoPlayer.setIsTouchWiget(true)
+
+ //不需要屏幕旋转
+ binding.videoPlayer.isNeedOrientationUtils = false
+ binding.videoPlayer.startPlayLogic()
+
+ binding.videoPlayer.backButton.setOnClickListener { onBackPressed() }
+ }
+
+ override fun initViewBinding(): ActivityFullScreenVideoBinding {
+ return ActivityFullScreenVideoBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ }
+
+ override fun onPause() {
+ super.onPause()
+ binding.videoPlayer.onVideoPause()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ binding.videoPlayer.onVideoResume()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ GSYVideoManager.releaseAllVideos()
+ orientationUtils?.releaseListener()
+ }
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ //释放所有
+ binding.videoPlayer.setVideoAllCallBack(null)
+ super.onBackPressed()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6dc1bff..3674d6d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,6 +39,10 @@
android:screenOrientation="landscape"
android:theme="@style/Theme.BigImageActivity" />
+
+
diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
index cbdda93..e0244fe 100644
--- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
+++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt
@@ -1,12 +1,10 @@
package com.casic.endoscope.view
import android.annotation.SuppressLint
-import android.content.pm.ActivityInfo
import android.os.Bundle
import android.os.Environment
import android.view.View
import android.widget.ImageView
-import androidx.activity.OnBackPressedCallback
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.casic.endoscope.R
@@ -18,6 +16,7 @@
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getStatusBarHeight
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
import kotlinx.coroutines.Dispatchers
@@ -52,16 +51,6 @@
}.toMutableList()
directoryAdapter.setRefreshData(dirBeans)
}
-
- //替换onBackPressed
- onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- GSYVideoManager.backFromWindowFull(context)
- //解决退出全屏后会被强制竖屏的问题
- requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
- finish()
- }
- })
}
override fun initOnCreate(savedInstanceState: Bundle?) {
@@ -93,10 +82,7 @@
lifecycleScope.launch(Dispatchers.Main) {
try {
val drawable = withContext(Dispatchers.IO) {
- Glide.with(context)
- .load(item)
- .submit()
- .get()
+ Glide.with(context).load(item).submit().get()
}
val coverImg = ImageView(context)
coverImg.setImageDrawable(drawable)
@@ -107,17 +93,12 @@
}
videoPlayer.setUp(item.absolutePath, true, "")
videoPlayer.fullscreenButton.setOnClickListener {
- videoPlayer.startWindowFullscreen(context, false, true)
+ navigatePageTo(item.absolutePath)
}
- //防止错位设置
videoPlayer.playTag = System.currentTimeMillis().toString()
videoPlayer.playPosition = childPos
- //是否根据视频尺寸,自动选择竖屏全屏或者横屏全屏
- videoPlayer.isAutoFullWithSize = true
- //音频焦点冲突时是否释放
videoPlayer.isReleaseWhenLossAudio = false
- //全屏动画
- videoPlayer.isShowFullAnimation = true
+ videoPlayer.setIsTouchWiget(false)
}
}
val offset = 10.dp2px(this)
@@ -157,4 +138,12 @@
super.onDestroy()
GSYVideoManager.releaseAllVideos()
}
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ if (GSYVideoManager.backFromWindowFull(this)) {
+ return
+ }
+ super.onBackPressed()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt b/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt
new file mode 100644
index 0000000..cf81821
--- /dev/null
+++ b/app/src/main/java/com/casic/endoscope/view/FullScreenVideoActivity.kt
@@ -0,0 +1,74 @@
+package com.casic.endoscope.view
+
+import android.os.Bundle
+import android.view.View
+import com.casic.endoscope.R
+import com.casic.endoscope.databinding.ActivityFullScreenVideoBinding
+import com.casic.endoscope.extensions.initImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import com.shuyu.gsyvideoplayer.GSYVideoManager
+import com.shuyu.gsyvideoplayer.utils.OrientationUtils
+
+
+class FullScreenVideoActivity : KotlinBaseActivity() {
+
+ private var orientationUtils: OrientationUtils? = null
+
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ val videoPath = intent.getStringExtra(Constant.INTENT_PARAM)
+ binding.videoPlayer.setUp(videoPath, true, "")
+
+ binding.videoPlayer.titleTextView.visibility = View.GONE
+ binding.videoPlayer.fullscreenButton.visibility = View.GONE
+ //设置旋转
+ orientationUtils = OrientationUtils(this, binding.videoPlayer)
+ //是否可以滑动调整
+ binding.videoPlayer.setIsTouchWiget(true)
+
+ //不需要屏幕旋转
+ binding.videoPlayer.isNeedOrientationUtils = false
+ binding.videoPlayer.startPlayLogic()
+
+ binding.videoPlayer.backButton.setOnClickListener { onBackPressed() }
+ }
+
+ override fun initViewBinding(): ActivityFullScreenVideoBinding {
+ return ActivityFullScreenVideoBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ }
+
+ override fun onPause() {
+ super.onPause()
+ binding.videoPlayer.onVideoPause()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ binding.videoPlayer.onVideoResume()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ GSYVideoManager.releaseAllVideos()
+ orientationUtils?.releaseListener()
+ }
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ //释放所有
+ binding.videoPlayer.setVideoAllCallBack(null)
+ super.onBackPressed()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_full_screen_video.xml b/app/src/main/res/layout/activity_full_screen_video.xml
new file mode 100644
index 0000000..ed2fb95
--- /dev/null
+++ b/app/src/main/res/layout/activity_full_screen_video.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file