Merge pull request #3397 from ByteHamster/fix-crash-audio-focus-after-shutdown
Fixed receiving audio events after service shutdown
This commit is contained in:
commit
037c4d3922
@ -350,13 +350,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
setPlayerStatus(PlayerStatus.PAUSED, media, getPosition());
|
setPlayerStatus(PlayerStatus.PAUSED, media, getPosition());
|
||||||
|
|
||||||
if (abandonFocus) {
|
if (abandonFocus) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
abandonAudioFocus();
|
||||||
AudioFocusRequest.Builder builder = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
|
|
||||||
.setOnAudioFocusChangeListener(audioFocusChangeListener);
|
|
||||||
audioManager.abandonAudioFocusRequest(builder.build());
|
|
||||||
} else {
|
|
||||||
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
|
||||||
}
|
|
||||||
pausedBecauseOfTransientAudiofocusLoss = false;
|
pausedBecauseOfTransientAudiofocusLoss = false;
|
||||||
}
|
}
|
||||||
if (stream && reinit) {
|
if (stream && reinit) {
|
||||||
@ -370,6 +364,16 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void abandonAudioFocus() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
AudioFocusRequest.Builder builder = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
|
||||||
|
.setOnAudioFocusChangeListener(audioFocusChangeListener);
|
||||||
|
audioManager.abandonAudioFocusRequest(builder.build());
|
||||||
|
} else {
|
||||||
|
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares media player for playback if the service is in the INITALIZED
|
* Prepares media player for playback if the service is in the INITALIZED
|
||||||
* state.
|
* state.
|
||||||
@ -701,6 +705,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
|
abandonAudioFocus();
|
||||||
executor.shutdown();
|
executor.shutdown();
|
||||||
if (mediaPlayer != null) {
|
if (mediaPlayer != null) {
|
||||||
try {
|
try {
|
||||||
@ -907,13 +912,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
mediaPlayer.reset();
|
mediaPlayer.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
abandonAudioFocus();
|
||||||
AudioFocusRequest.Builder builder = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
|
|
||||||
.setOnAudioFocusChangeListener(audioFocusChangeListener);
|
|
||||||
audioManager.abandonAudioFocusRequest(builder.build());
|
|
||||||
} else {
|
|
||||||
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
final Playable currentMedia = media;
|
final Playable currentMedia = media;
|
||||||
Playable nextMedia = null;
|
Playable nextMedia = null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user