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:id="@+id/videoview"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="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 -->
|
<!-- Mediaplayer controls -->
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -168,6 +168,7 @@
|
|||||||
<string name="best_rating_label">Best rating</string>
|
<string name="best_rating_label">Best rating</string>
|
||||||
<string name="add_feed_label">Add feed</string>
|
<string name="add_feed_label">Add feed</string>
|
||||||
<string name="miro_feed_added">Feed is being added</string>
|
<string name="miro_feed_added">Feed is being added</string>
|
||||||
|
<string name="player_buffering_msg">Buffering</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</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.
|
* not the correct one for the current activity.
|
||||||
*/
|
*/
|
||||||
protected abstract void onReloadNotification(int notificationCode);
|
protected abstract void onReloadNotification(int notificationCode);
|
||||||
|
protected abstract void onBufferStart();
|
||||||
|
protected abstract void onBufferEnd();
|
||||||
|
|
||||||
protected BroadcastReceiver notificationReceiver = new BroadcastReceiver() {
|
protected BroadcastReceiver notificationReceiver = new BroadcastReceiver() {
|
||||||
|
|
||||||
@ -162,6 +164,12 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity imple
|
|||||||
case PlaybackService.NOTIFICATION_TYPE_SLEEPTIMER_UPDATE:
|
case PlaybackService.NOTIFICATION_TYPE_SLEEPTIMER_UPDATE:
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
break;
|
break;
|
||||||
|
case PlaybackService.NOTIFICATION_TYPE_BUFFER_START:
|
||||||
|
onBufferStart();
|
||||||
|
break;
|
||||||
|
case PlaybackService.NOTIFICATION_TYPE_BUFFER_END:
|
||||||
|
onBufferEnd();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -16,6 +16,7 @@ import android.view.ViewGroup;
|
|||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.ProgressBar;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.VideoView;
|
import android.widget.VideoView;
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
|||||||
|
|
||||||
private LinearLayout videoOverlay;
|
private LinearLayout videoOverlay;
|
||||||
private VideoView videoview;
|
private VideoView videoview;
|
||||||
|
private ProgressBar progressIndicator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -64,6 +66,7 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
|||||||
super.setupGUI();
|
super.setupGUI();
|
||||||
videoOverlay = (LinearLayout) findViewById(R.id.overlay);
|
videoOverlay = (LinearLayout) findViewById(R.id.overlay);
|
||||||
videoview = (VideoView) findViewById(R.id.videoview);
|
videoview = (VideoView) findViewById(R.id.videoview);
|
||||||
|
progressIndicator = (ProgressBar) findViewById(R.id.progressIndicator);
|
||||||
videoview.getHolder().addCallback(this);
|
videoview.getHolder().addCallback(this);
|
||||||
videoview.setOnClickListener(playbuttonListener);
|
videoview.setOnClickListener(playbuttonListener);
|
||||||
videoview.setOnTouchListener(onVideoviewTouched);
|
videoview.setOnTouchListener(onVideoviewTouched);
|
||||||
@ -85,14 +88,15 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void postStatusMsg(int resId) {
|
protected void postStatusMsg(int resId) {
|
||||||
// TODO Auto-generated method stub
|
if (resId == R.string.player_preparing_msg) {
|
||||||
|
progressIndicator.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void clearStatusMsg() {
|
protected void clearStatusMsg() {
|
||||||
// TODO Auto-generated method stub
|
progressIndicator.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
View.OnTouchListener onVideoviewTouched = new View.OnTouchListener() {
|
View.OnTouchListener onVideoviewTouched = new View.OnTouchListener() {
|
||||||
@ -229,6 +233,16 @@ public class VideoplayerActivity extends MediaplayerActivity implements
|
|||||||
super.onStopTrackingTouch(seekBar);
|
super.onStopTrackingTouch(seekBar);
|
||||||
setupVideoControlsToggler();
|
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;
|
public static final int NOTIFICATION_TYPE_RELOAD = 3;
|
||||||
/** The state of the sleeptimer changed. */
|
/** The state of the sleeptimer changed. */
|
||||||
public static final int NOTIFICATION_TYPE_SLEEPTIMER_UPDATE = 4;
|
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. */
|
/** Is true if service is running. */
|
||||||
public static boolean isRunning = false;
|
public static boolean isRunning = false;
|
||||||
@ -171,6 +173,7 @@ public class PlaybackService extends Service {
|
|||||||
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
||||||
player.setOnErrorListener(onErrorListener);
|
player.setOnErrorListener(onErrorListener);
|
||||||
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
||||||
|
player.setOnInfoListener(onInfoListener);
|
||||||
mediaButtonReceiver = new ComponentName(getPackageName(),
|
mediaButtonReceiver = new ComponentName(getPackageName(),
|
||||||
MediaButtonReceiver.class.getName());
|
MediaButtonReceiver.class.getName());
|
||||||
audioManager.registerMediaButtonEventReceiver(mediaButtonReceiver);
|
audioManager.registerMediaButtonEventReceiver(mediaButtonReceiver);
|
||||||
@ -356,6 +359,7 @@ public class PlaybackService extends Service {
|
|||||||
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
player.setOnSeekCompleteListener(onSeekCompleteListener);
|
||||||
player.setOnErrorListener(onErrorListener);
|
player.setOnErrorListener(onErrorListener);
|
||||||
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
|
||||||
|
player.setOnInfoListener(onInfoListener);
|
||||||
status = PlayerStatus.STOPPED;
|
status = PlayerStatus.STOPPED;
|
||||||
setupMediaplayer();
|
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 MediaPlayer.OnErrorListener onErrorListener = new MediaPlayer.OnErrorListener() {
|
||||||
private static final String TAG = "PlaybackService.onErrorListener";
|
private static final String TAG = "PlaybackService.onErrorListener";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user