Enable next/prev seeking in demo app

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128682992
This commit is contained in:
olly 2016-07-28 03:32:37 -07:00 committed by Oliver Woodman
parent 2f20fd7c03
commit c82a3db5ac

View File

@ -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;