Merge "Notification playback: pause on release" into sc-dev am: e198354a0c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15505426

Change-Id: I3fc90661900eef38a2ef7f4b7df085c48eb1b210
This commit is contained in:
Eric Laurent
2021-08-24 18:20:01 +00:00
committed by Automerger Merge Worker
2 changed files with 24 additions and 3 deletions

View File

@@ -102,6 +102,13 @@ public abstract class PlayerBase {
mState = AudioPlaybackConfiguration.PLAYER_STATE_IDLE;
};
/** @hide */
public int getPlayerIId() {
synchronized (mLock) {
return mPlayerIId;
}
}
/**
* Call from derived class when instantiation / initialization is successful
*/

View File

@@ -139,7 +139,7 @@ public class NotificationPlayer implements OnCompletionListener, OnErrorListener
+ " with ducking", e);
}
player.start();
if (DEBUG) { Log.d(mTag, "player.start"); }
if (DEBUG) { Log.d(mTag, "player.start piid:" + player.getPlayerIId()); }
} catch (Exception e) {
if (player != null) {
player.release();
@@ -155,7 +155,13 @@ public class NotificationPlayer implements OnCompletionListener, OnErrorListener
mPlayer = player;
}
if (mp != null) {
if (DEBUG) { Log.d(mTag, "mPlayer.release"); }
if (DEBUG) {
Log.d(mTag, "mPlayer.pause+release piid:" + player.getPlayerIId());
}
mp.pause();
try {
Thread.sleep(100);
} catch (InterruptedException ie) { }
mp.release();
}
this.notify();
@@ -244,6 +250,10 @@ public class NotificationPlayer implements OnCompletionListener, OnErrorListener
try {
mp.stop();
} catch (Exception e) { }
if (DEBUG) {
Log.i(mTag, "About to release MediaPlayer piid:"
+ mp.getPlayerIId() + " due to notif cancelled");
}
mp.release();
synchronized(mQueueAudioFocusLock) {
if (mAudioManagerWithAudioFocus != null) {
@@ -284,7 +294,7 @@ public class NotificationPlayer implements OnCompletionListener, OnErrorListener
public void onCompletion(MediaPlayer mp) {
synchronized(mQueueAudioFocusLock) {
if (mAudioManagerWithAudioFocus != null) {
if (DEBUG) Log.d(mTag, "onCompletion() abandonning AudioFocus");
if (DEBUG) Log.d(mTag, "onCompletion() abandoning AudioFocus");
mAudioManagerWithAudioFocus.abandonAudioFocus(null);
mAudioManagerWithAudioFocus = null;
} else {
@@ -310,6 +320,10 @@ public class NotificationPlayer implements OnCompletionListener, OnErrorListener
}
}
if (mp != null) {
if (DEBUG) {
Log.i("NotificationPlayer", "About to release MediaPlayer piid:"
+ mp.getPlayerIId() + " due to onCompletion");
}
mp.release();
}
}