summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Stenning <stenning@google.com>2017-09-01 11:18:55 -0700
committerBrad Stenning <stenning@google.com>2017-09-05 08:35:36 -0700
commitb52e5ac97161c9c844a425e9d3b19066dd1877db (patch)
treecf065e31f21d3f78bf6d4563c76821558bac3375
parent5ccf13bb70738b0c21bcd9089851b960712d133c (diff)
downloadLocalMediaPlayer-b52e5ac97161c9c844a425e9d3b19066dd1877db.tar.gz
Respect Audio Focus during skip, shuffle and new selectionoreo-mr1-dev
Bug: 63140402 Test: 1. Start music 2. Start bluetooth call 3. Use next/prev/shuffle and song selection 4. confirm playback is not started. Change-Id: Icb6a408cdf2ca2c6e4fdfaaedcd19f456c86b6c3
-rw-r--r--src/com/android/car/media/localmediaplayer/Player.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/com/android/car/media/localmediaplayer/Player.java b/src/com/android/car/media/localmediaplayer/Player.java
index 9aa86be..f70e05c 100644
--- a/src/com/android/car/media/localmediaplayer/Player.java
+++ b/src/com/android/car/media/localmediaplayer/Player.java
@@ -474,12 +474,20 @@ public class Player extends MediaSession.Callback {
mMediaPlayer.reset();
mMediaPlayer.setDataSource(path);
mMediaPlayer.prepare();
- mMediaPlayer.start();
if (metadata != null) {
mSession.setMetadata(metadata);
}
- updatePlaybackStatePlaying();
+ boolean wasGrantedAudio = requestAudioFocus(() -> {
+ mMediaPlayer.start();
+ updatePlaybackStatePlaying();
+ });
+ if (!wasGrantedAudio) {
+ // player.pause() isn't needed since it should not actually be playing, the
+ // other steps like, updating the notification and play state are needed, thus we
+ // call the pause method.
+ pausePlayback();
+ }
}
private void safeAdvance() {
@@ -522,7 +530,6 @@ public class Player extends MediaSession.Callback {
}
mCurrentQueueIdx = 0;
updateSessionQueueState();
- updatePlaybackStatePlaying();
}
}