|
|
|
|
@ -78,10 +78,10 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic |
|
|
|
|
private Runnable runnable; |
|
|
|
|
private String url; |
|
|
|
|
private Sub sub; |
|
|
|
|
private int errorCode; |
|
|
|
|
private int retry; |
|
|
|
|
private int decode; |
|
|
|
|
private int player; |
|
|
|
|
private int error; |
|
|
|
|
private int retry; |
|
|
|
|
private float speed; |
|
|
|
|
|
|
|
|
|
public static boolean isExo(int type) { |
|
|
|
|
@ -216,7 +216,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic |
|
|
|
|
|
|
|
|
|
public void reset() { |
|
|
|
|
removeTimeoutCheck(); |
|
|
|
|
this.errorCode = 0; |
|
|
|
|
this.error = 0; |
|
|
|
|
this.retry = 0; |
|
|
|
|
stopParse(); |
|
|
|
|
} |
|
|
|
|
@ -285,9 +285,8 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String setSpeed(float speed) { |
|
|
|
|
if (exoPlayer != null) exoPlayer.setPlaybackSpeed(speed); |
|
|
|
|
if (ijkPlayer != null) ijkPlayer.setSpeed(speed); |
|
|
|
|
this.speed = speed; |
|
|
|
|
if (exoPlayer != null) exoPlayer.setPlaybackSpeed(this.speed = speed); |
|
|
|
|
if (ijkPlayer != null) ijkPlayer.setSpeed(this.speed = speed); |
|
|
|
|
return getSpeedText(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -496,25 +495,25 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setMediaSource(Result result, int timeout) { |
|
|
|
|
Logger.t(TAG).d(errorCode + "," + result.getRealUrl()); |
|
|
|
|
Logger.t(TAG).d(error + "," + result.getRealUrl()); |
|
|
|
|
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(result)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(result, sub, errorCode)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(result, sub, error)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.prepare(); |
|
|
|
|
setTimeoutCheck(result.getHeaders(), result.getRealUrl(), timeout); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setMediaSource(Channel channel, int timeout) { |
|
|
|
|
Logger.t(TAG).d(errorCode + "," + channel.getUrl()); |
|
|
|
|
Logger.t(TAG).d(error + "," + channel.getUrl()); |
|
|
|
|
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(channel)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(channel, errorCode)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(channel, error)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.prepare(); |
|
|
|
|
setTimeoutCheck(channel.getHeaders(), channel.getUrl(), timeout); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setMediaSource(Map<String, String> headers, String url) { |
|
|
|
|
Logger.t(TAG).d(errorCode + "," + url); |
|
|
|
|
Logger.t(TAG).d(error + "," + url); |
|
|
|
|
if (isIjk() && ijkPlayer != null) ijkPlayer.setMediaSource(IjkUtil.getSource(headers, url)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, sub, errorCode)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, sub, error)); |
|
|
|
|
if (isExo() && exoPlayer != null) exoPlayer.prepare(); |
|
|
|
|
setTimeoutCheck(headers, url, Constant.TIMEOUT_PLAY); |
|
|
|
|
} |
|
|
|
|
@ -611,7 +610,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onPlayerError(@NonNull PlaybackException error) { |
|
|
|
|
ErrorEvent.url(ExoUtil.getRetry(errorCode = error.errorCode)); |
|
|
|
|
ErrorEvent.url(ExoUtil.getRetry(this.error = error.errorCode)); |
|
|
|
|
setPlaybackState(PlaybackStateCompat.STATE_ERROR); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|