From 83595ded9fe2e97319488a3b86f354f3b159702b Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 21 Apr 2013 11:10:38 +0200 Subject: Fixes #174 --- .../danoeh/antennapod/service/PlaybackService.java | 36 ++++++++++++---------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'src/de/danoeh/antennapod/service') diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index 47c73648a..409ac6b48 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -73,8 +73,8 @@ public class PlaybackService extends Service { public static final String EXTRA_PREPARE_IMMEDIATELY = "extra.de.danoeh.antennapod.service.prepareImmediately"; public static final String ACTION_PLAYER_STATUS_CHANGED = "action.de.danoeh.antennapod.service.playerStatusChanged"; - private static final String AVRCP_ACTION_PLAYER_STATUS_CHANGED= "com.android.music.playstatechanged"; - + private static final String AVRCP_ACTION_PLAYER_STATUS_CHANGED = "com.android.music.playstatechanged"; + public static final String ACTION_PLAYER_NOTIFICATION = "action.de.danoeh.antennapod.service.playerNotification"; public static final String EXTRA_NOTIFICATION_CODE = "extra.de.danoeh.antennapod.service.notificationCode"; public static final String EXTRA_NOTIFICATION_TYPE = "extra.de.danoeh.antennapod.service.notificationType"; @@ -363,13 +363,15 @@ public class PlaybackService extends Service { } // Intent values appear to be valid // check if already playing and playbackType is the same - } else if (media == null || playable != media + } else if (media == null + || !playable.getIdentifier().equals(media.getIdentifier()) || playbackType != shouldStream) { pause(true, false); player.reset(); sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0); if (media == null - || playable.getIdentifier() != media.getIdentifier()) { + || !playable.getIdentifier().equals( + media.getIdentifier())) { media = playable; } @@ -1226,23 +1228,23 @@ public class PlaybackService extends Service { private void bluetoothNotifyChange() { boolean isPlaying = false; - + if (status == PlayerStatus.PLAYING) { isPlaying = true; } - - Intent i = new Intent(AVRCP_ACTION_PLAYER_STATUS_CHANGED); - i.putExtra("id", 1); - i.putExtra("artist", ""); - i.putExtra("album", media.getFeedTitle()); - i.putExtra("track", media.getEpisodeTitle()); - i.putExtra("playing", isPlaying); - i.putExtra("ListSize", manager.getQueueSize(false)); - i.putExtra("duration", media.getDuration()); - i.putExtra("position", media.getPosition()); - sendBroadcast(i); + + Intent i = new Intent(AVRCP_ACTION_PLAYER_STATUS_CHANGED); + i.putExtra("id", 1); + i.putExtra("artist", ""); + i.putExtra("album", media.getFeedTitle()); + i.putExtra("track", media.getEpisodeTitle()); + i.putExtra("playing", isPlaying); + i.putExtra("ListSize", manager.getQueueSize(false)); + i.putExtra("duration", media.getDuration()); + i.putExtra("position", media.getPosition()); + sendBroadcast(i); } - + /** * Pauses playback when the headset is disconnected and the preference is * set -- cgit v1.2.3 From e65c1b7322327754d2f0cfc46138fe7fdab79693 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Thu, 2 May 2013 20:57:10 +0200 Subject: Added methods for controlling playback speed to playback controller --- src/de/danoeh/antennapod/service/PlaybackService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/de/danoeh/antennapod/service') diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index 56bdce375..421aae85e 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -1553,6 +1553,16 @@ public class PlaybackService extends Service { } } } + + public double getCurrentPlaybackSpeed() { + if (media.getMediaType() == MediaType.AUDIO && player instanceof AudioPlayer) { + AudioPlayer audioPlayer = (AudioPlayer) player; + if (audioPlayer.canSetSpeed()) { + return audioPlayer.getCurrentSpeedMultiplier(); + } + } + return -1; + } /** * call getDuration() on mediaplayer or return INVALID_TIME if player is in -- cgit v1.2.3 From 62d7a927ad6a53b4ffa58bd8fef6368d698c3938 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Fri, 3 May 2013 18:31:39 +0200 Subject: Added buttons to control playback speed --- src/de/danoeh/antennapod/service/PlaybackService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/de/danoeh/antennapod/service') diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index 421aae85e..bf90cf9c9 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -109,6 +109,7 @@ public class PlaybackService extends Service { public static final int NOTIFICATION_TYPE_BUFFER_END = 6; /** No more episodes are going to be played. */ public static final int NOTIFICATION_TYPE_PLAYBACK_END = 7; + public static final int NOTIFICATION_TYPE_PLAYBACK_SPEED_CHANGE = 8; /** * Returned by getPositionSafe() or getDurationSafe() if the playbackService @@ -1541,6 +1542,10 @@ public class PlaybackService extends Service { AudioPlayer audioPlayer = (AudioPlayer) player; if (audioPlayer.canSetSpeed()) { audioPlayer.setPlaybackSpeed((float) speed); + if (AppConfig.DEBUG) + Log.d(TAG, "Playback speed was set to " + speed); + sendNotificationBroadcast( + NOTIFICATION_TYPE_PLAYBACK_SPEED_CHANGE, 0); } } } @@ -1553,9 +1558,10 @@ public class PlaybackService extends Service { } } } - + public double getCurrentPlaybackSpeed() { - if (media.getMediaType() == MediaType.AUDIO && player instanceof AudioPlayer) { + if (media.getMediaType() == MediaType.AUDIO + && player instanceof AudioPlayer) { AudioPlayer audioPlayer = (AudioPlayer) player; if (audioPlayer.canSetSpeed()) { return audioPlayer.getCurrentSpeedMultiplier(); -- cgit v1.2.3 From 2db89cb807ae06b0f59039307e20c32cd9052b57 Mon Sep 17 00:00:00 2001 From: James Falcon Date: Sat, 4 May 2013 08:51:41 -0500 Subject: Bug fix for trying to set pitch when media is null. --- src/de/danoeh/antennapod/service/PlaybackService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/de/danoeh/antennapod/service') diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index bf90cf9c9..6c7619476 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -1524,21 +1524,21 @@ public class PlaybackService extends Service { } public boolean canSetSpeed() { - if (media.getMediaType() == MediaType.AUDIO) { + if (media != null && media.getMediaType() == MediaType.AUDIO) { return ((AudioPlayer) player).canSetSpeed(); } return false; } public boolean canSetPitch() { - if (media.getMediaType() == MediaType.AUDIO) { + if (media != null && media.getMediaType() == MediaType.AUDIO) { return ((AudioPlayer) player).canSetPitch(); } return false; } public void setSpeed(double speed) { - if (media.getMediaType() == MediaType.AUDIO) { + if (media != null && media.getMediaType() == MediaType.AUDIO) { AudioPlayer audioPlayer = (AudioPlayer) player; if (audioPlayer.canSetSpeed()) { audioPlayer.setPlaybackSpeed((float) speed); @@ -1551,7 +1551,7 @@ public class PlaybackService extends Service { } public void setPitch(double pitch) { - if (media.getMediaType() == MediaType.AUDIO) { + if (media != null && media.getMediaType() == MediaType.AUDIO) { AudioPlayer audioPlayer = (AudioPlayer) player; if (audioPlayer.canSetPitch()) { audioPlayer.setPlaybackPitch((float) pitch); -- cgit v1.2.3