diff --git a/exo-api16/src/main/java/snow/player/exo/api16/ExoMusicPlayer.java b/exo-api16/src/main/java/snow/player/exo/api16/ExoMusicPlayer.java index 9cfd533f..68b747ae 100644 --- a/exo-api16/src/main/java/snow/player/exo/api16/ExoMusicPlayer.java +++ b/exo-api16/src/main/java/snow/player/exo/api16/ExoMusicPlayer.java @@ -1,5 +1,7 @@ package snow.player.exo.api16; +import static com.google.android.exoplayer2.C.WAKE_MODE_NETWORK; + import android.annotation.SuppressLint; import android.content.Context; import android.net.Uri; @@ -194,6 +196,7 @@ private int toErrorCode(PlaybackException error) { private void initExoPlayer(Context context) { mExoPlayer = new ExoPlayer.Builder(context) + .setWakeMode(WAKE_MODE_NETWORK) .setLooper(Looper.getMainLooper()) .build(); diff --git a/exo/src/main/java/snow/player/exo/ExoMusicPlayer.java b/exo/src/main/java/snow/player/exo/ExoMusicPlayer.java index 0395cedd..22cfe866 100644 --- a/exo/src/main/java/snow/player/exo/ExoMusicPlayer.java +++ b/exo/src/main/java/snow/player/exo/ExoMusicPlayer.java @@ -1,5 +1,7 @@ package snow.player.exo; +import static com.google.android.exoplayer2.C.WAKE_MODE_NETWORK; + import android.annotation.SuppressLint; import android.content.Context; import android.net.Uri; @@ -205,6 +207,7 @@ private int toErrorCode(PlaybackException error) { private void initExoPlayer(Context context, @Nullable MediaSource.Factory mediaSourceFactory) { ExoPlayer.Builder builder = new ExoPlayer.Builder(context) + .setWakeMode(WAKE_MODE_NETWORK) .setLooper(Looper.getMainLooper()); if (mediaSourceFactory != null) { diff --git a/player/src/main/java/snow/player/AbstractPlayer.java b/player/src/main/java/snow/player/AbstractPlayer.java index 0ca7fe7a..f17b0a9e 100644 --- a/player/src/main/java/snow/player/AbstractPlayer.java +++ b/player/src/main/java/snow/player/AbstractPlayer.java @@ -915,6 +915,7 @@ private void notifyPrepared(int audioSessionId, int duration) { private void notifyPlaying(boolean stalled, int progress, long updateTime) { mPlayerStateHelper.onPlay(stalled, progress, updateTime); + requireWakeLock(); if (!stalled) { mMediaSession.setPlaybackState(buildPlaybackState(PlaybackStateCompat.STATE_PLAYING)); diff --git a/player/src/main/java/snow/player/audio/MediaMusicPlayer.java b/player/src/main/java/snow/player/audio/MediaMusicPlayer.java index 1e38066d..0029421b 100644 --- a/player/src/main/java/snow/player/audio/MediaMusicPlayer.java +++ b/player/src/main/java/snow/player/audio/MediaMusicPlayer.java @@ -5,6 +5,7 @@ import android.media.PlaybackParams; import android.net.Uri; import android.os.Build; +import android.os.PowerManager; import android.util.Log; import androidx.annotation.NonNull; @@ -71,6 +72,8 @@ public MediaMusicPlayer(@NonNull Context context, @NonNull Uri uri, @Nullable Ma mMediaPlayer = new MediaPlayer(); mInvalid = false; + mMediaPlayer.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK); + mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) {