Support ijk seek progress

pull/123/head
FongMi 3 years ago
parent 2988ad5348
commit 984e4c539d
  1. 20
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  2. 4
      ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java

@ -244,18 +244,22 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
private void setMediaSource(Result result) {
SpiderDebug.log(errorCode + "," + result.getUrl() + "," + result.getHeaders());
if (isExo()) exoPlayer.setMediaSource(ExoUtil.getSource(result, errorCode));
if (isIjk()) ijkPlayer.setMediaSource(result.getPlayUrl() + result.getUrl(), result.getHeaders());
if (isExo()) exoPlayer.prepare();
PlayerEvent.state(0);
else if (isExo()) {
exoPlayer.setMediaSource(ExoUtil.getSource(result, errorCode));
exoPlayer.prepare();
PlayerEvent.state(0);
}
}
private void setMediaSource(Map<String, String> headers, String url) {
SpiderDebug.log(errorCode + "," + url + "," + headers);
if (isExo()) exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, errorCode));
if (isIjk()) ijkPlayer.setMediaSource(url, headers);
if (isExo()) exoPlayer.prepare();
PlayerEvent.state(0);
else if (isExo()) {
exoPlayer.setMediaSource(ExoUtil.getSource(headers, url, errorCode));
exoPlayer.prepare();
PlayerEvent.state(0);
}
}
@Override
@ -288,10 +292,14 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
@Override
public boolean onInfo(IMediaPlayer mp, int what, int extra) {
switch (what) {
case IMediaPlayer.MEDIA_INFO_AUDIO_DECODED_START:
PlayerEvent.state(0);
return true;
case IMediaPlayer.MEDIA_INFO_BUFFERING_START:
PlayerEvent.state(Player.STATE_BUFFERING);
return true;
case IMediaPlayer.MEDIA_INFO_BUFFERING_END:
case IMediaPlayer.MEDIA_INFO_AUDIO_SEEK_RENDERING_START:
PlayerEvent.state(Player.STATE_READY);
return true;
default:

@ -418,7 +418,9 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
@Override
public void seekTo(int msec) {
if (isInPlaybackState()) mIjkPlayer.seekTo(msec);
if (!isInPlaybackState()) return;
mInfoListener.onInfo(mIjkPlayer, IMediaPlayer.MEDIA_INFO_BUFFERING_START, 0);
mIjkPlayer.seekTo(msec);
}
public void seekTo(long msec) {

Loading…
Cancel
Save