pull/171/head
FongMi 2 years ago
parent 84b2b77d9e
commit 2102bb92af
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 15
      app/src/main/java/com/fongmi/android/tv/event/PlayerEvent.java
  3. 27
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  4. 22
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  5. 24
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -1248,8 +1248,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private boolean mismatch(Vod item) {
String keyword = mBinding.part.getTag().toString();
if (getId().equals(item.getVodId())) return true;
if (mBroken.contains(item.getVodId())) return true;
String keyword = mBinding.part.getTag().toString();
if (isAutoMode()) return !item.getVodName().equals(keyword);
else return !item.getVodName().contains(keyword);
}

@ -7,7 +7,6 @@ import org.greenrobot.eventbus.EventBus;
public class PlayerEvent {
private final int state;
private final String url;
public static void ready() {
EventBus.getDefault().post(new PlayerEvent(Player.STATE_READY));
@ -17,25 +16,11 @@ public class PlayerEvent {
EventBus.getDefault().post(new PlayerEvent(state));
}
public static void url(String url) {
EventBus.getDefault().post(new PlayerEvent(url));
}
private PlayerEvent(int state) {
this.state = state;
this.url = "";
}
public PlayerEvent(String url) {
this.state = 0;
this.url = url;
}
public int getState() {
return state;
}
public String getUrl() {
return url;
}
}

@ -57,6 +57,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
public static final int SOFT = 0;
public static final int HARD = 1;
private Map<String, String> headers;
private MediaSessionCompat session;
private IjkVideoView ijkPlayer;
private DanmakuView danmuView;
@ -65,6 +66,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
private ExoPlayer exoPlayer;
private ParseJob parseJob;
private Runnable runnable;
private String url;
private int errorCode;
private int timeout;
private int retry;
@ -140,6 +142,19 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
return ijkPlayer;
}
public Map<String, String> getHeaders() {
return headers;
}
public String getUrl() {
return url;
}
public void clean() {
this.headers = null;
this.url = null;
}
public MediaSessionCompat getSession() {
return session;
}
@ -432,7 +447,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(result));
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(result, errorCode));
if (isExo() && exoPlayer != null) exoPlayer.prepare();
setTimeoutCheck(result.getRealUrl());
setTimeoutCheck(result.getHeaders(), result.getRealUrl());
}
private void setMediaSource(Channel channel) {
@ -440,7 +455,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(channel));
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(channel, errorCode));
if (isExo() && exoPlayer != null) exoPlayer.prepare();
setTimeoutCheck(channel.getUrl());
setTimeoutCheck(channel.getHeaders(), channel.getUrl());
}
private void setMediaSource(Map<String, String> headers, String url) {
@ -448,12 +463,14 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(headers, url));
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, errorCode));
if (isExo() && exoPlayer != null) exoPlayer.prepare();
setTimeoutCheck(url);
setTimeoutCheck(headers, url);
}
private void setTimeoutCheck(String url) {
private void setTimeoutCheck(Map<String, String> headers, String url) {
App.post(runnable, timeout);
PlayerEvent.url(url);
this.headers = headers;
PlayerEvent.state(0);
this.url = url;
}
private void removeTimeoutCheck() {

@ -108,7 +108,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private boolean lock;
private int toggleCount;
private int passCount;
private String url;
private PiP mPiP;
public static void start(Activity activity) {
@ -289,11 +288,11 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
}
private void onCast() {
CastDialog.create().video(CastVideo.get(mBinding.control.title.getText().toString(), getUrl())).fm(false).show(this);
CastDialog.create().video(CastVideo.get(mBinding.control.title.getText().toString(), mPlayers.getUrl())).fm(false).show(this);
}
private void onShare() {
ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(getUrl());
ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(mPlayers.getUrl());
builder.getIntent().putExtra("title", mBinding.control.title.getText());
builder.getIntent().putExtra("name", mBinding.control.title.getText());
builder.startChooser();
@ -426,8 +425,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
}
private void showControl() {
mBinding.control.share.setVisibility(getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.cast.setVisibility(getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.share.setVisibility(mPlayers.getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.cast.setVisibility(mPlayers.getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.right.rotate.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.right.back.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.bottom.setVisibility(isLock() ? View.GONE : View.VISIBLE);
@ -592,8 +591,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
if (mChannel == null) return;
LiveConfig.get().setKeep(mChannel);
mViewModel.fetch(mChannel);
mPlayers.clean();
showProgress();
setUrl(null);
}
private void start(Channel result) {
@ -670,7 +669,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
public void onPlayerEvent(PlayerEvent event) {
switch (event.getState()) {
case 0:
setUrl(event.getUrl());
setTrackVisible(false);
break;
case Player.STATE_IDLE:
@ -857,14 +855,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
this.lock = lock;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getToggleCount() {
return toggleCount;
}
@ -1024,7 +1014,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
} else if (isVisible(mBinding.recycler)) {
hideUI();
} else if (!isLock()) {
finish();
super.onBackPressed();
}
}

@ -562,10 +562,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.title.setText(getString(R.string.detail_title, mBinding.name.getText(), episode.getName()));
mViewModel.playerContent(getKey(), flag.getFlag(), episode.getUrl());
updateHistory(episode, replay);
mPlayers.clean();
showProgress();
setMetadata();
hidePreview();
setUrl(null);
}
private void setPlayer(Result result) {
@ -697,7 +697,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void onCast() {
CastDialog.create().history(mHistory).video(CastVideo.get(mBinding.name.getText().toString(), getUrl())).fm(true).show(this);
CastDialog.create().history(mHistory).video(CastVideo.get(mBinding.name.getText().toString(), mPlayers.getUrl())).fm(true).show(this);
}
private void onFull() {
@ -715,7 +715,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void onShare() {
ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(getUrl());
ShareCompat.IntentBuilder builder = new ShareCompat.IntentBuilder(this).setType("text/plain").setText(mPlayers.getUrl());
builder.getIntent().putExtra("title", mBinding.control.title.getText());
builder.getIntent().putExtra("name", mBinding.control.title.getText());
builder.startChooser();
@ -979,9 +979,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.right.back.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE);
mBinding.control.action.getRoot().setVisibility(isFullscreen() ? View.VISIBLE : View.GONE);
mBinding.control.share.setVisibility(mPlayers.getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.cast.setVisibility(mPlayers.getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.right.lock.setVisibility(isFullscreen() ? View.VISIBLE : View.GONE);
mBinding.control.share.setVisibility(getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.cast.setVisibility(getUrl() == null ? View.GONE : View.VISIBLE);
mBinding.control.center.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.bottom.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.top.setVisibility(isLock() ? View.GONE : View.VISIBLE);
@ -1162,7 +1162,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
setPosition();
setInitTrack(true);
setTrackVisible(false);
setUrl(event.getUrl());
mClock.setCallback(this);
break;
case Player.STATE_IDLE:
@ -1343,8 +1342,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private boolean mismatch(Vod item) {
String keyword = mBinding.name.getText().toString();
if (getId().equals(item.getVodId())) return true;
if (mBroken.contains(item.getVodId())) return true;
String keyword = mBinding.name.getText().toString();
if (isAutoMode()) return !item.getVodName().equals(keyword);
else return !item.getVodName().contains(keyword);
}
@ -1460,14 +1460,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
this.lock = lock;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getToggleCount() {
return toggleCount;
}
@ -1663,7 +1655,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
exitFullscreen();
} else if (!isLock()) {
stopSearch();
finish();
super.onBackPressed();
}
}

Loading…
Cancel
Save