Enable next/prev seeking in demo app
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=128682992
This commit is contained in:
parent
2f20fd7c03
commit
c82a3db5ac
@ -190,6 +190,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
||||
debugTextView = (TextView) findViewById(R.id.debug_text_view);
|
||||
subtitleView = (SubtitleView) findViewById(R.id.subtitles);
|
||||
mediaController = new KeyCompatibleMediaController(this);
|
||||
mediaController.setPrevNextListeners(this, this);
|
||||
retryButton = (Button) findViewById(R.id.retry_button);
|
||||
retryButton.setOnClickListener(this);
|
||||
|
||||
@ -301,6 +302,8 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
||||
player.setSurface(surfaceView.getHolder().getSurface());
|
||||
player.setPlayWhenReady(true);
|
||||
mediaController.setMediaPlayer(new PlayerControl(player));
|
||||
mediaController.setPrevNextListeners(new PrevNextClickListener(player, true),
|
||||
new PrevNextClickListener(player, false));
|
||||
mediaController.setAnchorView(rootView);
|
||||
debugViewHelper = new DebugTextViewHelper(player, debugTextView);
|
||||
debugViewHelper.start();
|
||||
@ -678,6 +681,37 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
||||
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
private static final class PrevNextClickListener implements OnClickListener {
|
||||
|
||||
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS_PERIOD = 3000;
|
||||
|
||||
private final SimpleExoPlayer player;
|
||||
private final boolean forward;
|
||||
|
||||
public PrevNextClickListener(SimpleExoPlayer player, boolean forward) {
|
||||
this.player = player;
|
||||
this.forward = forward;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int currentPeriodIndex = player.getCurrentPeriodIndex();
|
||||
if (forward) {
|
||||
if (currentPeriodIndex < player.getCurrentTimeline().getPeriodCount() - 1) {
|
||||
player.seekTo(currentPeriodIndex + 1, 0);
|
||||
}
|
||||
} else {
|
||||
if (currentPeriodIndex > 0
|
||||
&& player.getCurrentPosition() <= MAX_POSITION_FOR_SEEK_TO_PREVIOUS_PERIOD) {
|
||||
player.seekTo(currentPeriodIndex - 1, 0);
|
||||
} else {
|
||||
player.seekTo(currentPeriodIndex, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static final class KeyCompatibleMediaController extends MediaController {
|
||||
|
||||
private MediaController.MediaPlayerControl playerControl;
|
||||
|
Loading…
x
Reference in New Issue
Block a user