pull/142/head
FongMi 3 years ago
parent b71c813578
commit 73b3b51e70
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 9
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -637,7 +637,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void checkError(ErrorEvent event) {
if (getHome().getPlayerType() == -1 && event.isFormat() && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
if (getHome().getPlayerType() == -1 && event.isFormat() && event.getRetry() > 0 && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
toggleCount++;
nextPlayer();
} else {

@ -556,7 +556,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void setQualityVisible(boolean visible) {
mFlagPresenter.setNextFocusDown(visible ? R.id.quality : R.id.episode);
mEpisodePresenter.setNextFocusUp(visible ? R.id.quality : R.id.flag);
mBinding.quality.setVisibility(visible?View.VISIBLE:View.GONE);
mBinding.quality.setVisibility(visible ? View.VISIBLE : View.GONE);
notifyItemChanged(mBinding.episode, mEpisodeAdapter);
notifyItemChanged(mBinding.flag, mFlagAdapter);
}
@ -1088,7 +1088,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void checkError(ErrorEvent event) {
if (getSite().getPlayerType() == -1 && event.isFormat() && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
if (getSite().getPlayerType() == -1 && event.isFormat() && event.getRetry() > 0 && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
toggleCount++;
nextPlayer();
} else {

@ -3,7 +3,6 @@ package com.fongmi.android.tv.player;
import android.graphics.Color;
import android.net.Uri;
import androidx.media3.common.C;
import androidx.media3.common.MediaItem;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.PlaybackException;
@ -69,7 +68,7 @@ public class ExoUtil {
public static TrackSelector buildTrackSelector() {
DefaultTrackSelector trackSelector = new DefaultTrackSelector(App.get());
trackSelector.setParameters(trackSelector.buildUponParameters().setIgnoredTextSelectionFlags(C.SELECTION_FLAG_DEFAULT).setPreferredTextLanguage("zh").setTunnelingEnabled(Setting.isTunnel()));
trackSelector.setParameters(trackSelector.buildUponParameters().setPreferredTextLanguage("zh").setTunnelingEnabled(Setting.isTunnel()));
return trackSelector;
}
@ -81,6 +80,12 @@ public class ExoUtil {
return new CaptionStyleCompat(Color.WHITE, Color.TRANSPARENT, Color.TRANSPARENT, CaptionStyleCompat.EDGE_TYPE_OUTLINE, Color.BLACK, null);
}
public static int getRetry(int errorCode) {
if (errorCode == PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED) return 0;
if (errorCode == PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED || errorCode == PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED || errorCode == PlaybackException.ERROR_CODE_IO_UNSPECIFIED) return 2;
return 1;
}
public static boolean haveTrack(Tracks tracks, int type) {
int count = 0;
for (Tracks.Group trackGroup : tracks.getGroups()) if (trackGroup.getType() == type) count += trackGroup.length;

@ -15,6 +15,11 @@ import tv.danmaku.ijk.media.player.MediaSource;
public class IjkUtil {
public static int getRetry(int errorCode) {
if (errorCode == -10000) return 0;
return 1;
}
public static MediaSource getSource(Result result) {
return getSource(result.getHeaders(), result.getRealUrl());
}

@ -732,7 +732,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
}
private void checkError(ErrorEvent event) {
if (getHome().getPlayerType() == -1 && event.isFormat() && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
if (getHome().getPlayerType() == -1 && event.isFormat() && event.getRetry() > 0 && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
toggleCount++;
nextPlayer();
} else {

@ -1184,7 +1184,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void checkError(ErrorEvent event) {
if (getSite().getPlayerType() == -1 && event.isFormat() && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
if (getSite().getPlayerType() == -1 && event.isFormat() && event.getRetry() > 0 && getToggleCount() < 2 && mPlayers.getPlayer() != Players.SYS) {
toggleCount++;
nextPlayer();
} else {

Loading…
Cancel
Save