|
|
|
|
@ -95,6 +95,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
private Runnable mR3; |
|
|
|
|
private Clock mClock; |
|
|
|
|
private boolean foreground; |
|
|
|
|
private boolean initTrack; |
|
|
|
|
private boolean redirect; |
|
|
|
|
private boolean rotate; |
|
|
|
|
private boolean stop; |
|
|
|
|
@ -681,6 +682,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onTrackClick(Track item) { |
|
|
|
|
item.setKey(mPlayers.getUrl()); |
|
|
|
|
item.save(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@ -751,6 +754,9 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onPlayerEvent(PlayerEvent event) { |
|
|
|
|
switch (event.getState()) { |
|
|
|
|
case PlayerEvent.PREPARE: |
|
|
|
|
setInitTrack(true); |
|
|
|
|
break; |
|
|
|
|
case Player.STATE_BUFFERING: |
|
|
|
|
showProgress(); |
|
|
|
|
break; |
|
|
|
|
@ -763,6 +769,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
break; |
|
|
|
|
case PlayerEvent.TRACK: |
|
|
|
|
setMetadata(); |
|
|
|
|
setInitTrack(); |
|
|
|
|
mPlayers.reset(); |
|
|
|
|
setTrackVisible(); |
|
|
|
|
break; |
|
|
|
|
@ -779,6 +786,13 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
mBinding.control.action.speed.setVisibility(mPlayers.isVod() ? View.VISIBLE : View.GONE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setInitTrack() { |
|
|
|
|
if (isInitTrack()) { |
|
|
|
|
setInitTrack(false); |
|
|
|
|
mPlayers.setTrack(Track.find(mPlayers.getUrl())); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setMetadata() { |
|
|
|
|
String title = mBinding.widget.name.getText().toString(); |
|
|
|
|
String artist = mBinding.widget.play.getText().toString(); |
|
|
|
|
@ -793,9 +807,10 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onCheck(ErrorEvent event) { |
|
|
|
|
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode())); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekToDefaultPosition(); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo); |
|
|
|
|
if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekToDefaultPosition(); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode())); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED && mPlayers.getRetry() == 1) mPlayers.init(mBinding.exo); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED && mPlayers.isHard()) onDecode(); |
|
|
|
|
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode(); |
|
|
|
|
else onError(event); |
|
|
|
|
} |
|
|
|
|
@ -896,6 +911,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List |
|
|
|
|
this.foreground = foreground; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean isInitTrack() { |
|
|
|
|
return initTrack; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setInitTrack(boolean initTrack) { |
|
|
|
|
this.initTrack = initTrack; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean isRedirect() { |
|
|
|
|
return redirect; |
|
|
|
|
} |
|
|
|
|
|