diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2015-08-20 17:37:50 -0700 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2015-10-13 23:00:52 +0000 |
commit | a2ed535c67a6c6fbe2ae4a086193ad68711e2129 (patch) | |
tree | 1ee6609974d9c1870a3686c544d7149b936e369d /packages | |
parent | 4673b259bc1b362fee206c7476c5fde3f53b4e20 (diff) | |
download | frameworks_base-a2ed535c67a6c6fbe2ae4a086193ad68711e2129.zip frameworks_base-a2ed535c67a6c6fbe2ae4a086193ad68711e2129.tar.gz frameworks_base-a2ed535c67a6c6fbe2ae4a086193ad68711e2129.tar.bz2 |
NotificationPlayer supports MediaPlayer errors
If an error is reported while trying to play a notification,
behave as if the playback had completed.
Bug 21093153
Change-Id: Iedc7691d0b8f4d68ad75cb04292a5d7d9350552f
(cherry picked from commit a25f6fcfed280136a16ce5800fcaabae17291dd7)
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java b/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java index 803a014..728d558 100644 --- a/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java +++ b/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java @@ -21,6 +21,7 @@ import android.media.AudioAttributes; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; +import android.media.MediaPlayer.OnErrorListener; import android.net.Uri; import android.os.Looper; import android.os.PowerManager; @@ -36,7 +37,7 @@ import java.util.LinkedList; * - whenever audio is played, audio focus is requested, * - whenever audio playback is stopped or the playback completed, audio focus is abandoned. */ -public class NotificationPlayer implements OnCompletionListener { +public class NotificationPlayer implements OnCompletionListener, OnErrorListener { private static final int PLAY = 1; private static final int STOP = 2; private static final boolean mDebug = false; @@ -112,6 +113,7 @@ public class NotificationPlayer implements OnCompletionListener { // done playing. This class should be modified to use a single thread, on which // command are issued, and on which it receives the completion callbacks. player.setOnCompletionListener(NotificationPlayer.this); + player.setOnErrorListener(NotificationPlayer.this); player.start(); if (mPlayer != null) { mPlayer.release(); @@ -245,6 +247,13 @@ public class NotificationPlayer implements OnCompletionListener { } } + public boolean onError(MediaPlayer mp, int what, int extra) { + Log.e(mTag, "error " + what + " (extra=" + extra + ") playing notification"); + // error happened, handle it just like a completion + onCompletion(mp); + return true; + } + private String mTag; private CmdThread mThread; private CreationAndCompletionThread mCompletionThread; |