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