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 571bc5bd..b334e5a5 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 @@ -502,8 +502,13 @@ public class PlayActivity extends BaseActivity { url="http://home.jundie.top:666/unBom.php?m3u8="+url;//尝试去bom头再次播放 } if (url.startsWith("data:application/dash+xml;base64,")) { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); App.getInstance().setDashData(url.split("base64,")[1]); url = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; + } else if (url.contains(".mpd") || url.contains("type=mpd")) { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); + } else { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); } String finalUrl = url; runOnUiThread(new Runnable() { @@ -512,7 +517,6 @@ public class PlayActivity extends BaseActivity { stopParse(); if (mVideoView != null) { mVideoView.release(); - if (finalUrl != null) { try { int playerType = mVodPlayerCfg.getInt("pl"); @@ -530,7 +534,6 @@ public class PlayActivity extends BaseActivity { e.printStackTrace(); } hideTip(); - PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); mVideoView.setProgressKey(progressKey); if (headers != null) { mVideoView.setUrl(finalUrl, headers); 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 a32efedd..8de1186b 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 @@ -512,10 +512,14 @@ public class PlayFragment extends BaseLazyFragment { if(autoRetryCount>0 && url.contains(".m3u8")){ url="http://home.jundie.top:666/unBom.php?m3u8="+url;//尝试去bom头再次播放 } - if (url.startsWith("data:application/dash+xml;base64,")) { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); App.getInstance().setDashData(url.split("base64,")[1]); url = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; + } else if (url.contains(".mpd") || url.contains("type=mpd")) { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); + } else { + PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); } String finalUrl = url; @@ -544,7 +548,6 @@ public class PlayFragment extends BaseLazyFragment { e.printStackTrace(); } hideTip(); - PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); mVideoView.setProgressKey(progressKey); if (headers != null) { mVideoView.setUrl(finalUrl, headers); diff --git a/app/src/main/java/com/github/tvbox/osc/util/PlayerHelper.java b/app/src/main/java/com/github/tvbox/osc/util/PlayerHelper.java index f2912040..c79b0c30 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/PlayerHelper.java +++ b/app/src/main/java/com/github/tvbox/osc/util/PlayerHelper.java @@ -31,6 +31,9 @@ import xyz.doikki.videoplayer.render.TextureRenderViewFactory; public class PlayerHelper { public static void updateCfg(VideoView videoView, JSONObject playerCfg) { + updateCfg(videoView,playerCfg,-1); + } + public static void updateCfg(VideoView videoView, JSONObject playerCfg,int forcePlayerType) { int playerType = Hawk.get(HawkConfig.PLAY_TYPE, 0); int renderType = Hawk.get(HawkConfig.PLAY_RENDER, 0); String ijkCode = Hawk.get(HawkConfig.IJK_CODEC, "软解码"); @@ -43,6 +46,7 @@ public class PlayerHelper { } catch (JSONException e) { e.printStackTrace(); } + if(forcePlayerType>=0)playerType = forcePlayerType; IJKCode codec = ApiConfig.get().getIJKCodec(ijkCode); PlayerFactory playerFactory; if (playerType == 1) { diff --git a/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so b/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so index 7bf40643..689fa8d2 100644 Binary files a/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so and b/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so differ diff --git a/player/src/main/jniLibs/armeabi-v7a/libijksdl.so b/player/src/main/jniLibs/armeabi-v7a/libijksdl.so index 63b11aa9..9de892f7 100644 Binary files a/player/src/main/jniLibs/armeabi-v7a/libijksdl.so and b/player/src/main/jniLibs/armeabi-v7a/libijksdl.so differ diff --git a/player/src/main/jniLibs/armeabi-v7a/libplayer.so b/player/src/main/jniLibs/armeabi-v7a/libplayer.so index 97daab1a..3a67de1c 100644 Binary files a/player/src/main/jniLibs/armeabi-v7a/libplayer.so and b/player/src/main/jniLibs/armeabi-v7a/libplayer.so differ