diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java index 96bc5849..59057b7d 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java @@ -184,6 +184,7 @@ public class MediaPlayerLifecycleSupport int keyCode = event.getKeyCode(); boolean autoStart = (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || + keyCode == KeyEvent.KEYCODE_HEADSETHOOK || keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS || keyCode == KeyEvent.KEYCODE_MEDIA_NEXT); diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java index 5cd9e008..c389f978 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java @@ -82,7 +82,7 @@ public class MediaPlayerService extends Service public static MediaPlayerService getInstance(Context context) { synchronized (instanceLock) { - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 20; i++) { if (instance != null) return instance; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -113,6 +113,12 @@ public class MediaPlayerService extends Service public void run() { MediaPlayerService instance = getInstance(context); + if (instance == null) + { + Log.e(TAG, "ExecuteOnStartedMediaPlayerService failed to get a MediaPlayerService instance!"); + return; + } + taskToExecute.accept(instance); } };