From 22819fee7b2cb669713e219af9a35109d82b9a35 Mon Sep 17 00:00:00 2001 From: okjackcaptain <378702538@qq.com> Date: Thu, 15 Sep 2022 10:45:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=A2=84=E8=A7=88=E7=AA=97=E5=8F=A3=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E5=B9=95=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/activity/PlayActivity.java | 25 ++++++++++------- .../tvbox/osc/ui/fragment/PlayFragment.java | 28 +++++++++++++++++-- 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index 11921ba7..a8a79c2d 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -233,14 +233,16 @@ public class PlayActivity extends BaseActivity { stopParse(); if (mVideoView != null) { mVideoView.release(); + String zimuParamKey = "___zimu___"; //字幕url的header中key String zimuBase64Url = ""; + if (headers != null && headers.containsKey(zimuParamKey)) { + zimuBase64Url = headers.get(zimuParamKey); + headers.remove(zimuParamKey);//remove传过来的字幕header的key + } + if (url != null) { try { - if (headers != null && headers.containsKey(zimuParamKey)) { - zimuBase64Url = headers.get(zimuParamKey); - headers.remove(zimuParamKey);//remove传过来的字幕header的key - } int playerType = mVodPlayerCfg.getInt("pl"); if (playerType >= 10) { VodInfo.VodSeries vs = mVodInfo.seriesMap.get(mVodInfo.playFlag).get(mVodInfo.playIndex); @@ -266,17 +268,20 @@ public class PlayActivity extends BaseActivity { hideTip(); PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); mVideoView.setProgressKey(progressKey); - String zimuUrl = ""; - if (zimuBase64Url != null && zimuBase64Url.length() > 0) { - zimuUrl = new String(Base64.decode(zimuBase64Url, Base64.DEFAULT)); - mController.mSubtitleView.setVisibility(View.GONE); - } if (headers != null) { mVideoView.setUrl(url, headers); } else { mVideoView.setUrl(url); } mVideoView.start(); + mController.resetSpeed(); + + //加载字幕开始 + String zimuUrl = ""; + if (zimuBase64Url != null && zimuBase64Url.length() > 0) { + zimuUrl = new String(Base64.decode(zimuBase64Url, Base64.DEFAULT)); + mController.mSubtitleView.setVisibility(View.GONE); + } if (zimuUrl != null && zimuUrl .length() > 0) { // 绑定MediaPlayer mController.mSubtitleView.bindToMediaPlayer(mVideoView.getMediaPlayer()); @@ -284,7 +289,7 @@ public class PlayActivity extends BaseActivity { mController.mSubtitleView.setSubtitlePath(zimuUrl); mController.mSubtitleView.setVisibility(View.VISIBLE); } - mController.resetSpeed(); + //加载字幕结束 } } } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java index 14c6484d..65668568 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java @@ -9,6 +9,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.Base64; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; @@ -42,6 +43,7 @@ import com.github.tvbox.osc.bean.SourceBean; import com.github.tvbox.osc.bean.VodInfo; import com.github.tvbox.osc.cache.CacheManager; import com.github.tvbox.osc.event.RefreshEvent; +import com.github.tvbox.osc.player.MyVideoView; import com.github.tvbox.osc.player.controller.VodController; import com.github.tvbox.osc.player.thirdparty.MXPlayer; import com.github.tvbox.osc.player.thirdparty.ReexPlayer; @@ -81,10 +83,9 @@ import java.util.concurrent.Executors; import me.jessyan.autosize.AutoSize; import xyz.doikki.videoplayer.player.ProgressManager; -import xyz.doikki.videoplayer.player.VideoView; public class PlayFragment extends BaseLazyFragment { - private VideoView mVideoView; + private MyVideoView mVideoView; private TextView mPlayLoadTip; private ImageView mPlayLoadErr; private ProgressBar mPlayLoading; @@ -230,6 +231,14 @@ public class PlayFragment extends BaseLazyFragment { stopParse(); if (mVideoView != null) { mVideoView.release(); + + String zimuParamKey = "___zimu___"; //字幕url的header中key + String zimuBase64Url = ""; + if (headers != null && headers.containsKey(zimuParamKey)) { + zimuBase64Url = headers.get(zimuParamKey); + headers.remove(zimuParamKey);//remove传过来的字幕header的key + } + if (url != null) { try { int playerType = mVodPlayerCfg.getInt("pl"); @@ -264,6 +273,21 @@ public class PlayFragment extends BaseLazyFragment { } mVideoView.start(); mController.resetSpeed(); + + //加载字幕开始 + String zimuUrl = ""; + if (zimuBase64Url != null && zimuBase64Url.length() > 0) { + zimuUrl = new String(Base64.decode(zimuBase64Url, Base64.DEFAULT)); + mController.mSubtitleView.setVisibility(View.GONE); + } + if (zimuUrl != null && zimuUrl .length() > 0) { + // 绑定MediaPlayer + mController.mSubtitleView.bindToMediaPlayer(mVideoView.getMediaPlayer()); + // 设置字幕 + mController.mSubtitleView.setSubtitlePath(zimuUrl); + mController.mSubtitleView.setVisibility(View.VISIBLE); + } + //加载字幕结束 } } }