Added buffer update listeners

This commit is contained in:
daniel oeh
2012-07-02 17:29:18 +02:00
parent 92c32662ca
commit 4882a5ff92
2 changed files with 22 additions and 2 deletions

View File

@ -529,15 +529,24 @@ public class MediaplayerActivity extends SherlockFragmentActivity implements
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Received notification intent");
int type = intent.getIntExtra(
PlaybackService.EXTRA_NOTIFICATION_TYPE, -1);
int code = intent.getIntExtra(
PlaybackService.EXTRA_NOTIFICATION_CODE, -1);
if (code != -1 && type != -1) {
if (type == PlaybackService.NOTIFICATION_TYPE_ERROR) {
switch (type) {
case PlaybackService.NOTIFICATION_TYPE_ERROR:
handleError(code);
break;
case PlaybackService.NOTIFICATION_TYPE_BUFFER_UPDATE:
if (sbPosition != null) {
float progress = ((float) code) / 100;
sbPosition.setSecondaryProgress((int) progress
* sbPosition.getMax());
}
break;
}
} else {
Log.d(TAG, "Bad arguments. Won't handle intent");
}

View File

@ -110,6 +110,7 @@ public class PlaybackService extends Service {
player.setOnCompletionListener(completionListener);
player.setOnSeekCompleteListener(onSeekCompleteListener);
player.setOnErrorListener(onErrorListener);
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
mediaButtonReceiver = new ComponentName(getPackageName(),
MediaButtonReceiver.class.getName());
audioManager.registerMediaButtonEventReceiver(mediaButtonReceiver);
@ -277,6 +278,7 @@ public class PlaybackService extends Service {
player.setOnCompletionListener(completionListener);
player.setOnSeekCompleteListener(onSeekCompleteListener);
player.setOnErrorListener(onErrorListener);
player.setOnBufferingUpdateListener(onBufferingUpdateListener);
status = PlayerStatus.STOPPED;
setupMediaplayer();
}
@ -385,6 +387,15 @@ public class PlaybackService extends Service {
}
};
private MediaPlayer.OnBufferingUpdateListener onBufferingUpdateListener = new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
sendNotificationBroadcast(NOTIFICATION_TYPE_BUFFER_UPDATE, percent);
}
};
public void pause() {
if (player.isPlaying()) {