From c4f1885a9a40c275ffe6b68de6b97e7daac1e63d Mon Sep 17 00:00:00 2001 From: 21561 <215613905@qq.com> Date: Sat, 12 Apr 2025 16:42:00 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=90=8E=E5=8F=B0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=92=AD=E6=94=BE;=20fix=20=E8=81=9A?= =?UTF-8?q?=E6=90=9C;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../osc/ui/adapter/FastSearchAdapter.java | 2 +- app/src/main/res/layout/item_search.xml | 4 +- app/src/main/res/values/dimens.xml | 2 + .../doikki/videoplayer/player/VideoView.java | 57 +++++++++---------- 4 files changed, 31 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java index d823bd50..0088fdaa 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java @@ -38,7 +38,7 @@ public class FastSearchAdapter extends BaseQuickAdapter + android:layout_width="@dimen/vs_204" + android:layout_height="@dimen/vs_272"> 190mm 200mm 214mm + 204mm 220mm 230mm 240mm 250mm 270mm + 272mm 280mm 300mm 320mm diff --git a/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java b/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java index aa15aecd..a8e5f1b4 100644 --- a/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java +++ b/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java @@ -350,11 +350,6 @@ public class VideoView

extends FrameLayout */ public void resume() { if (isInPlaybackState() && !mMediaPlayer.isPlaying()) { - addDisplay(); - if (mRenderView != null) { - mRenderView.setScaleType(mCurrentScreenScaleType); - mRenderView.setVideoSize(mVideoSize[0], mVideoSize[1]); - } assert mRenderView != null; View renderView = mRenderView.getView(); if (renderView instanceof SurfaceView) { @@ -362,24 +357,19 @@ public class VideoView

extends FrameLayout final SurfaceHolder holder = surfaceView.getHolder(); if (holder.getSurface() != null && holder.getSurface().isValid()) { mMediaPlayer.setDisplay(holder); - mMediaPlayer.start(); - setPlayState(STATE_PLAYING); - if (mAudioFocusHelper != null && !isMute()) { - mAudioFocusHelper.requestFocus(); - } - mPlayerContainer.setKeepScreenOn(true); + resumePlay(); } else { holder.addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { - mMediaPlayer.setDisplay(holder); - mMediaPlayer.start(); - setPlayState(STATE_PLAYING); - if (mAudioFocusHelper != null && !isMute()) { - mAudioFocusHelper.requestFocus(); + addDisplay(); + if (mRenderView != null) { + mRenderView.setScaleType(mCurrentScreenScaleType); + mRenderView.setVideoSize(mVideoSize[0], mVideoSize[1]); } - mPlayerContainer.setKeepScreenOn(true); - // 记得移除回调,避免重复调用 + mMediaPlayer.setDisplay(holder); + resumePlay(); + // 移除回调,避免重复调用 holder.removeCallback(this); } @@ -392,24 +382,29 @@ public class VideoView

extends FrameLayout } }); } - } else if (renderView instanceof TextureView) { - mMediaPlayer.start(); - setPlayState(STATE_PLAYING); - if (mAudioFocusHelper != null && !isMute()) { - mAudioFocusHelper.requestFocus(); - } - mPlayerContainer.setKeepScreenOn(true); } else { - mMediaPlayer.start(); - setPlayState(STATE_PLAYING); - if (mAudioFocusHelper != null && !isMute()) { - mAudioFocusHelper.requestFocus(); - } - mPlayerContainer.setKeepScreenOn(true); + resumePlay(); + } + if (mRenderView != null) { + // 强制请求布局(解决部分设备渲染问题) + mRenderView.getView().requestLayout(); + mRenderView.getView().invalidate(); + } + if (mRenderView != null && mRenderView.getView() != null) { + // 统一设置视图可见性 + mRenderView.getView().setVisibility(View.VISIBLE); } } } + private void resumePlay(){ + mMediaPlayer.start(); + setPlayState(STATE_PLAYING); + if (mAudioFocusHelper != null && !isMute()) { + mAudioFocusHelper.requestFocus(); + } + mPlayerContainer.setKeepScreenOn(true); + } /** * 释放播放器 */