0
0
mirror of https://github.com/mediathekview/zapp.git synced 2024-09-20 04:12:14 +02:00

Delay stream play when swiping through channels

This commit is contained in:
Christine Emrich 2016-09-19 16:12:00 +02:00
parent 247998a9ae
commit e23880fc4e
2 changed files with 25 additions and 1 deletions

View File

@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
@ -15,6 +16,7 @@ import android.widget.ProgressBar;
import android.widget.VideoView;
import butterknife.BindDrawable;
import butterknife.BindInt;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnTouch;
@ -37,10 +39,21 @@ public class ChannelDetailActivity extends FullscreenActivity {
protected @BindDrawable(android.R.drawable.ic_media_pause) Drawable pauseIcon;
protected @BindDrawable(android.R.drawable.ic_media_play) Drawable playIcon;
protected @BindInt(R.integer.play_stream_delay_millis) int playStreamDelayMillis;
private final Handler playHandler = new Handler();
private ChannelDetailAdapter channelDetailAdapter;
private ChannelModel currentChannel;
private boolean isPlaying = false;
private final Runnable playRunnable = new Runnable() {
@Override
public void run() {
play();
}
};
private final MediaPlayer.OnErrorListener videoErrorListener = new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int what, int extra) {
@ -78,7 +91,7 @@ public class ChannelDetailActivity extends FullscreenActivity {
public void OnItemSelected(ChannelModel channel) {
currentChannel = channel;
setTitle(channel.getName());
play();
playDelayed();
}
};
@ -163,6 +176,13 @@ public class ChannelDetailActivity extends FullscreenActivity {
return false;
}
private void playDelayed() {
videoView.pause();
progressView.setVisibility(View.VISIBLE);
playHandler.removeCallbacks(playRunnable);
playHandler.postDelayed(playRunnable, playStreamDelayMillis);
}
private void play() {
Log.d(TAG, "play: " + currentChannel.getName());
isPlaying = true;

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="play_stream_delay_millis">750</integer>
</resources>