OSDN Git Service

MusicPlaybackService: catch IllegalStateException for duration and position
authorAlexander Martinz <amartinz@shiftphones.com>
Thu, 28 Feb 2019 10:35:53 +0000 (11:35 +0100)
committerAlexander Martinz <amartinz@shiftphones.com>
Tue, 19 Mar 2019 18:42:08 +0000 (19:42 +0100)
On some where short tracks, which eg last one second, this can crash
the service.

Change-Id: I3db9bb70bd952554b44151b457963507174208bf
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
src/org/lineageos/eleven/MusicPlaybackService.java

index 1725234..3283f0a 100644 (file)
@@ -3396,7 +3396,12 @@ public class MusicPlaybackService extends Service {
          * @return The duration in milliseconds
          */
         public long duration() {
-            return mCurrentMediaPlayer.getDuration();
+            try {
+                return mCurrentMediaPlayer.getDuration();
+            } catch (IllegalStateException exc) {
+                Log.e(TAG, "Could not get duration", exc);
+            }
+            return 0L;
         }
 
         /**
@@ -3405,7 +3410,12 @@ public class MusicPlaybackService extends Service {
          * @return The current position in milliseconds
          */
         public long position() {
-            return mCurrentMediaPlayer.getCurrentPosition();
+            try {
+                return mCurrentMediaPlayer.getCurrentPosition();
+            } catch (IllegalStateException exc) {
+                Log.e(TAG, "Could not get current position", exc);
+            }
+            return 0L;
         }
 
         /**