mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-02-02 11:46:55 +01:00
Added listener for buffering information and progressbar in videoplayer
This commit is contained in:
parent
d657c9ffb7
commit
6901e4a08f
@ -8,6 +8,14 @@
|
||||
android:id="@+id/videoview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progressIndicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="invisible"
|
||||
android:indeterminateOnly="true" />
|
||||
<!-- Mediaplayer controls -->
|
||||
|
||||
<LinearLayout
|
||||
|
@ -168,6 +168,7 @@
|
||||
<string name="best_rating_label">Best rating</string>
|
||||
<string name="add_feed_label">Add feed</string>
|
||||
<string name="miro_feed_added">Feed is being added</string>
|
||||
<string name="player_buffering_msg">Buffering</string>
|
||||
|
||||
|
||||
</resources>
|
@ -186,4 +186,14 @@ public class AudioplayerActivity extends MediaplayerActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBufferStart() {
|
||||
postStatusMsg(R.string.player_buffering_msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBufferEnd() {
|
||||
clearStatusMsg();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -127,6 +127,8 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity imple
|
||||
* not the correct one for the current activity.
|
||||
*/
|
||||
protected abstract void onReloadNotification(int notificationCode);
|
||||
protected abstract void onBufferStart();
|
||||
protected abstract void onBufferEnd();
|
||||
|
||||
protected BroadcastReceiver notificationReceiver = new BroadcastReceiver() {
|
||||
|
||||
@ -162,6 +164,12 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity imple
|
||||
case PlaybackService.NOTIFICATION_TYPE_SLEEPTIMER_UPDATE:
|
||||
invalidateOptionsMenu();
|
||||
break;
|
||||
case PlaybackService.NOTIFICATION_TYPE_BUFFER_START:
|
||||
onBufferStart();
|
||||
break;
|
||||
case PlaybackService.NOTIFICATION_TYPE_BUFFER_END:
|
||||
onBufferEnd();
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -16,6 +16,7 @@ import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.VideoView;
|
||||
|
||||
@ -30,6 +31,7 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
||||
|
||||
private LinearLayout videoOverlay;
|
||||
private VideoView videoview;
|
||||
private ProgressBar progressIndicator;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -64,6 +66,7 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
||||
super.setupGUI();
|
||||
videoOverlay = (LinearLayout) findViewById(R.id.overlay);
|
||||
videoview = (VideoView) findViewById(R.id.videoview);
|
||||
progressIndicator = (ProgressBar) findViewById(R.id.progressIndicator);
|
||||
videoview.getHolder().addCallback(this);
|
||||
videoview.setOnClickListener(playbuttonListener);
|
||||
videoview.setOnTouchListener(onVideoviewTouched);
|
||||
@ -85,14 +88,15 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
||||
|
||||
@Override
|
||||
protected void postStatusMsg(int resId) {
|
||||
// TODO Auto-generated method stub
|
||||
if (resId == R.string.player_preparing_msg) {
|
||||
progressIndicator.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void clearStatusMsg() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
progressIndicator.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
View.OnTouchListener onVideoviewTouched = new View.OnTouchListener() {
|
||||
@ -229,6 +233,16 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
||||
super.onStopTrackingTouch(seekBar);
|
||||
setupVideoControlsToggler();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBufferStart() {
|
||||
progressIndicator.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBufferEnd() {
|
||||
progressIndicator.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -79,6 +79,8 @@ public class PlaybackService extends Service {
|
||||
public static final int NOTIFICATION_TYPE_RELOAD = 3;
|
||||
/** The state of the sleeptimer changed. */
|
||||
public static final int NOTIFICATION_TYPE_SLEEPTIMER_UPDATE = 4;
|
||||
public static final int NOTIFICATION_TYPE_BUFFER_START = 5;
|
||||
public static final int NOTIFICATION_TYPE_BUFFER_END = 6;
|
||||
|
||||
/** Is true if service is running. */
|
||||
public static boolean isRunning = false;
|
||||
@ -171,6 +173,7 @@ public class PlaybackService extends Service {
|
||||
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
||||
player.setOnErrorListener(onErrorListener);
|
||||
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
||||
player.setOnInfoListener(onInfoListener);
|
||||
mediaButtonReceiver = new ComponentName(getPackageName(),
|
||||
MediaButtonReceiver.class.getName());
|
||||
audioManager.registerMediaButtonEventReceiver(mediaButtonReceiver);
|
||||
@ -356,6 +359,7 @@ public class PlaybackService extends Service {
|
||||
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
||||
player.setOnErrorListener(onErrorListener);
|
||||
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
||||
player.setOnInfoListener(onInfoListener);
|
||||
status = PlayerStatus.STOPPED;
|
||||
setupMediaplayer();
|
||||
}
|
||||
@ -446,6 +450,23 @@ public class PlaybackService extends Service {
|
||||
}
|
||||
};
|
||||
|
||||
private MediaPlayer.OnInfoListener onInfoListener = new MediaPlayer.OnInfoListener() {
|
||||
|
||||
@Override
|
||||
public boolean onInfo(MediaPlayer mp, int what, int extra) {
|
||||
switch (what) {
|
||||
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
|
||||
sendNotificationBroadcast(NOTIFICATION_TYPE_BUFFER_START, 0);
|
||||
return true;
|
||||
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
|
||||
sendNotificationBroadcast(NOTIFICATION_TYPE_BUFFER_END, 0);
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private MediaPlayer.OnErrorListener onErrorListener = new MediaPlayer.OnErrorListener() {
|
||||
private static final String TAG = "PlaybackService.onErrorListener";
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user