紧急修正部分dash视频闪退

pull/103/head
21561 2 years ago
parent f8d07a9d6c
commit 6b9f0beb22
  1. 7
      app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java
  2. 7
      app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
  3. 4
      app/src/main/java/com/github/tvbox/osc/util/PlayerHelper.java
  4. BIN
      player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so
  5. BIN
      player/src/main/jniLibs/armeabi-v7a/libijksdl.so
  6. BIN
      player/src/main/jniLibs/armeabi-v7a/libplayer.so

@ -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);

@ -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);

@ -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) {

Loading…
Cancel
Save