pull/21/head
FongMi 4 years ago
parent 04987164ca
commit 2e13796dcf
  1. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 13
      app/src/main/java/com/fongmi/android/tv/event/PlayerEvent.java
  3. 29
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  4. 1
      app/src/main/res/values-zh-rCN/strings.xml
  5. 1
      app/src/main/res/values-zh-rTW/strings.xml
  6. 1
      app/src/main/res/values/strings.xml

@ -299,10 +299,14 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
EventBus.getDefault().post(RefreshEvent.history());
}
private void updateHistory() {
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPlaybackStateChanged(PlayerEvent event) {
mBinding.progress.getRoot().setVisibility(event.getState() == Player.STATE_BUFFERING ? View.VISIBLE : View.GONE);
if (event.getState() == -1) Notify.show(R.string.error_play_parse);
Notify.show(event.getMsg());
}
@Override

@ -1,13 +1,24 @@
package com.fongmi.android.tv.event;
import android.text.TextUtils;
public class PlayerEvent {
private final int state;
private int state;
private String msg;
public PlayerEvent(int state) {
this.state = state;
}
public PlayerEvent(String msg) {
this.msg = msg;
}
public String getMsg() {
return TextUtils.isEmpty(msg) ? "" : msg;
}
public int getState() {
return state;
}

@ -3,10 +3,15 @@ package com.fongmi.android.tv.player;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.event.PlayerEvent;
import com.fongmi.android.tv.ui.custom.CustomWebView;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.util.Util;
import com.google.gson.JsonElement;
@ -62,14 +67,22 @@ public class Players implements Player.Listener {
}
public String getTime(long time) {
time = exoPlayer.getCurrentPosition() + time;
time = getCurrentPosition() + time;
if (time > exoPlayer.getDuration()) time = exoPlayer.getDuration();
else if (time < 0) time = 0;
return Util.getStringForTime(builder, formatter, time);
}
public long getCurrentPosition() {
return exoPlayer.getCurrentPosition();
}
public void seekTo(int time) {
exoPlayer.seekTo(exoPlayer.getCurrentPosition() + time);
exoPlayer.seekTo(getCurrentPosition() + time);
}
public void seekTo(long time) {
exoPlayer.seekTo(time);
}
public boolean isPlaying() {
@ -110,10 +123,15 @@ public class Players implements Player.Listener {
exoPlayer.setMediaSource(ExoUtil.getSource(headers, url));
exoPlayer.prepare();
exoPlayer.play();
checkPosition();
webView.stop();
});
}
private void checkPosition() {
}
public void pause() {
if (exoPlayer != null) {
exoPlayer.pause();
@ -155,12 +173,17 @@ public class Players implements Player.Listener {
private final Runnable mTimer = new Runnable() {
@Override
public void run() {
EventBus.getDefault().post(new PlayerEvent(-1));
EventBus.getDefault().post(new PlayerEvent(ResUtil.getString(R.string.error_play_parse)));
exoPlayer.stop();
webView.stop();
}
};
@Override
public void onPlayerError(@NonNull PlaybackException error) {
EventBus.getDefault().post(new PlayerEvent(ResUtil.getString(R.string.error_play)));
}
@Override
public void onPlaybackStateChanged(int state) {
EventBus.getDefault().post(new PlayerEvent(state));

@ -54,6 +54,7 @@
<string name="error_play_next">已经是最后一集了!</string>
<string name="error_play_prev">已经是第一集了!</string>
<string name="error_play_parse">无法解析网址</string>
<string name="error_play">不支援的影片格式</string>
<string-array name="select_thumbnail">
<item>高质量</item>

@ -54,6 +54,7 @@
<string name="error_play_next">已經是最後一集了!</string>
<string name="error_play_prev">已經是第一集了!</string>
<string name="error_play_parse">無法解析網址</string>
<string name="error_play">不支援的影片格式</string>
<string-array name="select_thumbnail">
<item>高品質</item>

@ -54,6 +54,7 @@
<string name="error_play_next">It\'s the last episode!</string>
<string name="error_play_prev">It\'s the first episode!</string>
<string name="error_play_parse">Unable to parse url</string>
<string name="error_play">Unsupported video format</string>
<string-array name="select_thumbnail">
<item>High</item>

Loading…
Cancel
Save