Loading api/current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -13983,7 +13983,8 @@ package android.media { public class AsyncPlayer { public class AsyncPlayer { ctor public AsyncPlayer(java.lang.String); ctor public AsyncPlayer(java.lang.String); method public void play(android.content.Context, android.net.Uri, boolean, int); method public deprecated void play(android.content.Context, android.net.Uri, boolean, int); method public void play(android.content.Context, android.net.Uri, boolean, android.media.AudioAttributes) throws java.lang.IllegalArgumentException; method public void stop(); method public void stop(); } } api/system-current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -14943,7 +14943,8 @@ package android.media { public class AsyncPlayer { public class AsyncPlayer { ctor public AsyncPlayer(java.lang.String); ctor public AsyncPlayer(java.lang.String); method public void play(android.content.Context, android.net.Uri, boolean, int); method public deprecated void play(android.content.Context, android.net.Uri, boolean, int); method public void play(android.content.Context, android.net.Uri, boolean, android.media.AudioAttributes) throws java.lang.IllegalArgumentException; method public void stop(); method public void stop(); } } media/java/android/media/AsyncPlayer.java +37 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.media; package android.media; import android.annotation.NonNull; import android.content.Context; import android.content.Context; import android.net.Uri; import android.net.Uri; import android.os.PowerManager; import android.os.PowerManager; Loading @@ -38,11 +39,11 @@ public class AsyncPlayer { Context context; Context context; Uri uri; Uri uri; boolean looping; boolean looping; int stream; AudioAttributes attributes; long requestTime; long requestTime; public String toString() { public String toString() { return "{ code=" + code + " looping=" + looping + " stream=" + stream return "{ code=" + code + " looping=" + looping + " attr=" + attributes + " uri=" + uri + " }"; + " uri=" + uri + " }"; } } } } Loading @@ -56,7 +57,7 @@ public class AsyncPlayer { try { try { if (mDebug) Log.d(mTag, "Starting playback"); if (mDebug) Log.d(mTag, "Starting playback"); MediaPlayer player = new MediaPlayer(); MediaPlayer player = new MediaPlayer(); player.setAudioStreamType(cmd.stream); player.setAudioAttributes(cmd.attributes); player.setDataSource(cmd.context, cmd.uri); player.setDataSource(cmd.context, cmd.uri); player.setLooping(cmd.looping); player.setLooping(cmd.looping); player.prepare(); player.prepare(); Loading Loading @@ -159,15 +160,46 @@ public class AsyncPlayer { * (see {@link MediaPlayer#setLooping(boolean)}) * (see {@link MediaPlayer#setLooping(boolean)}) * @param stream the AudioStream to use. * @param stream the AudioStream to use. * (see {@link MediaPlayer#setAudioStreamType(int)}) * (see {@link MediaPlayer#setAudioStreamType(int)}) * @deprecated use {@link #play(Context, Uri, boolean, AudioAttributes)} instead */ */ public void play(Context context, Uri uri, boolean looping, int stream) { public void play(Context context, Uri uri, boolean looping, int stream) { if (context == null || uri == null) { return; } try { play(context, uri, looping, new AudioAttributes.Builder().setInternalLegacyStreamType(stream).build()); } catch (IllegalArgumentException e) { Log.e(mTag, "Call to deprecated AsyncPlayer.play() method caused:", e); } } /** * Start playing the sound. It will actually start playing at some * point in the future. There are no guarantees about latency here. * Calling this before another audio file is done playing will stop * that one and start the new one. * * @param context the non-null application's context. * @param uri the non-null URI to play. (see {@link MediaPlayer#setDataSource(Context, Uri)}) * @param looping whether the audio should loop forever. * (see {@link MediaPlayer#setLooping(boolean)}) * @param attributes the non-null {@link AudioAttributes} to use. * (see {@link MediaPlayer#setAudioAttributes(AudioAttributes)}) * @throws IllegalArgumentException */ public void play(@NonNull Context context, @NonNull Uri uri, boolean looping, @NonNull AudioAttributes attributes) throws IllegalArgumentException { if (context == null || uri == null || attributes == null) { throw new IllegalArgumentException("Illegal null AsyncPlayer.play() argument"); } Command cmd = new Command(); Command cmd = new Command(); cmd.requestTime = SystemClock.uptimeMillis(); cmd.requestTime = SystemClock.uptimeMillis(); cmd.code = PLAY; cmd.code = PLAY; cmd.context = context; cmd.context = context; cmd.uri = uri; cmd.uri = uri; cmd.looping = looping; cmd.looping = looping; cmd.stream = stream; cmd.attributes = attributes; synchronized (mCmdQueue) { synchronized (mCmdQueue) { enqueueLocked(cmd); enqueueLocked(cmd); mState = PLAY; mState = PLAY; Loading Loading
api/current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -13983,7 +13983,8 @@ package android.media { public class AsyncPlayer { public class AsyncPlayer { ctor public AsyncPlayer(java.lang.String); ctor public AsyncPlayer(java.lang.String); method public void play(android.content.Context, android.net.Uri, boolean, int); method public deprecated void play(android.content.Context, android.net.Uri, boolean, int); method public void play(android.content.Context, android.net.Uri, boolean, android.media.AudioAttributes) throws java.lang.IllegalArgumentException; method public void stop(); method public void stop(); } }
api/system-current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -14943,7 +14943,8 @@ package android.media { public class AsyncPlayer { public class AsyncPlayer { ctor public AsyncPlayer(java.lang.String); ctor public AsyncPlayer(java.lang.String); method public void play(android.content.Context, android.net.Uri, boolean, int); method public deprecated void play(android.content.Context, android.net.Uri, boolean, int); method public void play(android.content.Context, android.net.Uri, boolean, android.media.AudioAttributes) throws java.lang.IllegalArgumentException; method public void stop(); method public void stop(); } }
media/java/android/media/AsyncPlayer.java +37 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.media; package android.media; import android.annotation.NonNull; import android.content.Context; import android.content.Context; import android.net.Uri; import android.net.Uri; import android.os.PowerManager; import android.os.PowerManager; Loading @@ -38,11 +39,11 @@ public class AsyncPlayer { Context context; Context context; Uri uri; Uri uri; boolean looping; boolean looping; int stream; AudioAttributes attributes; long requestTime; long requestTime; public String toString() { public String toString() { return "{ code=" + code + " looping=" + looping + " stream=" + stream return "{ code=" + code + " looping=" + looping + " attr=" + attributes + " uri=" + uri + " }"; + " uri=" + uri + " }"; } } } } Loading @@ -56,7 +57,7 @@ public class AsyncPlayer { try { try { if (mDebug) Log.d(mTag, "Starting playback"); if (mDebug) Log.d(mTag, "Starting playback"); MediaPlayer player = new MediaPlayer(); MediaPlayer player = new MediaPlayer(); player.setAudioStreamType(cmd.stream); player.setAudioAttributes(cmd.attributes); player.setDataSource(cmd.context, cmd.uri); player.setDataSource(cmd.context, cmd.uri); player.setLooping(cmd.looping); player.setLooping(cmd.looping); player.prepare(); player.prepare(); Loading Loading @@ -159,15 +160,46 @@ public class AsyncPlayer { * (see {@link MediaPlayer#setLooping(boolean)}) * (see {@link MediaPlayer#setLooping(boolean)}) * @param stream the AudioStream to use. * @param stream the AudioStream to use. * (see {@link MediaPlayer#setAudioStreamType(int)}) * (see {@link MediaPlayer#setAudioStreamType(int)}) * @deprecated use {@link #play(Context, Uri, boolean, AudioAttributes)} instead */ */ public void play(Context context, Uri uri, boolean looping, int stream) { public void play(Context context, Uri uri, boolean looping, int stream) { if (context == null || uri == null) { return; } try { play(context, uri, looping, new AudioAttributes.Builder().setInternalLegacyStreamType(stream).build()); } catch (IllegalArgumentException e) { Log.e(mTag, "Call to deprecated AsyncPlayer.play() method caused:", e); } } /** * Start playing the sound. It will actually start playing at some * point in the future. There are no guarantees about latency here. * Calling this before another audio file is done playing will stop * that one and start the new one. * * @param context the non-null application's context. * @param uri the non-null URI to play. (see {@link MediaPlayer#setDataSource(Context, Uri)}) * @param looping whether the audio should loop forever. * (see {@link MediaPlayer#setLooping(boolean)}) * @param attributes the non-null {@link AudioAttributes} to use. * (see {@link MediaPlayer#setAudioAttributes(AudioAttributes)}) * @throws IllegalArgumentException */ public void play(@NonNull Context context, @NonNull Uri uri, boolean looping, @NonNull AudioAttributes attributes) throws IllegalArgumentException { if (context == null || uri == null || attributes == null) { throw new IllegalArgumentException("Illegal null AsyncPlayer.play() argument"); } Command cmd = new Command(); Command cmd = new Command(); cmd.requestTime = SystemClock.uptimeMillis(); cmd.requestTime = SystemClock.uptimeMillis(); cmd.code = PLAY; cmd.code = PLAY; cmd.context = context; cmd.context = context; cmd.uri = uri; cmd.uri = uri; cmd.looping = looping; cmd.looping = looping; cmd.stream = stream; cmd.attributes = attributes; synchronized (mCmdQueue) { synchronized (mCmdQueue) { enqueueLocked(cmd); enqueueLocked(cmd); mState = PLAY; mState = PLAY; Loading