From c2b947c630d001bb62b87529580ffd1103f43be5 Mon Sep 17 00:00:00 2001 From: maxinyu Date: Fri, 5 Jun 2026 17:17:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=97=B6=E8=A7=86=E9=A2=91=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 2 - app/src/main/AndroidManifest.xml | 1 + .../liveVideo/LiveVideoActivity.kt | 70 ++++++++++++++----- .../view/MyGSYVideoPlayer.kt | 5 +- .../view/MyGSYVideoPlayerLive.kt | 20 ++++++ .../main/res/layout/live_video_activity.xml | 5 +- 6 files changed, 80 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayerLive.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 38466e4..fcac53c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -101,8 +101,6 @@ dependencies { implementation("com.yanzhenjie.recyclerview:x:1.3.2") //Android-PickerView-时间弹窗 implementation("com.contrarywind:Android-PickerView:4.1.9") - //基于exoPlayer 自定义播放器 JPlayer支持功能 - implementation("com.ycjiang:VideoPlayModule-Lite:2.3.61") // GSYVideoPlayer implementation("io.github.carguo:gsyvideoplayer:13.0.0") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b9d989..38668ea 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -90,6 +90,7 @@ android:exported="false" /> - if (fullPlayer is MyGSYVideoPlayer) { - fullPlayer.onControlVisibilityChanged = { show -> - Log.e("GSY_TEST", "全屏回调 show=$show") - } - } - } + binding.exoPlayContextId.startWindowFullscreen(this, true, true) } + + } + private fun hidePlayerControls() { + binding.exoPlayContextId.backButton.visibility = View.GONE + binding.exoPlayContextId.titleTextView.visibility = View.GONE + binding.exoPlayContextId.startButton.visibility = View.GONE + + binding.exoPlayContextId.findViewById( + com.shuyu.gsyvideoplayer.R.id.current + )?.visibility = View.GONE + + binding.exoPlayContextId.findViewById( + com.shuyu.gsyvideoplayer.R.id.total + )?.visibility = View.GONE + + binding.exoPlayContextId.findViewById( + com.shuyu.gsyvideoplayer.R.id.progress + )?.visibility = View.INVISIBLE + + binding.exoPlayContextId.findViewById( + com.shuyu.gsyvideoplayer.R.id.start + )?.visibility = View.GONE + + binding.exoPlayContextId.findViewById( + com.shuyu.gsyvideoplayer.R.id.layout_bottom + )?.setBackgroundColor(Color.TRANSPARENT) + } private fun initAlarmRecyclerView() { diff --git a/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayer.kt b/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayer.kt index 5709f5a..f97ec11 100644 --- a/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayer.kt +++ b/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayer.kt @@ -19,7 +19,7 @@ class MyGSYVideoPlayer @JvmOverloads constructor( onControlVisibilityChanged?.invoke(true) } - // 暂停中显示控制栏 + // 暂停中显示控制栏hideAllExceptFullscreen override fun changeUiToPauseShow() { super.changeUiToPauseShow() onControlVisibilityChanged?.invoke(true) @@ -31,7 +31,6 @@ class MyGSYVideoPlayer @JvmOverloads constructor( Log.e("GSY_TEST", "changeUiToPlayingClear") onControlVisibilityChanged?.invoke(false) } - // 暂停中清除控制栏 override fun changeUiToPauseClear() { super.changeUiToPauseClear() @@ -59,4 +58,4 @@ class MyGSYVideoPlayer @JvmOverloads constructor( super.changeUiToPreparingShow() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayerLive.kt b/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayerLive.kt new file mode 100644 index 0000000..80e6b57 --- /dev/null +++ b/app/src/main/java/com/example/defenseapplication/view/MyGSYVideoPlayerLive.kt @@ -0,0 +1,20 @@ +package com.example.defenseapplication.view + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer + +class MyGSYVideoPlayerLive @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : StandardGSYVideoPlayer(context, attrs) { + + override fun init(context: Context) { + super.init(context) + startButton.visibility = View.GONE + } + + override fun updateStartImage() { + startButton.visibility = View.GONE + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/live_video_activity.xml b/app/src/main/res/layout/live_video_activity.xml index 9256a0f..eae4cbc 100644 --- a/app/src/main/res/layout/live_video_activity.xml +++ b/app/src/main/res/layout/live_video_activity.xml @@ -43,12 +43,13 @@ - - +