diff options
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioTrack.java | 17 | ||||
-rw-r--r-- | media/java/android/media/session/MediaController.java | 4 |
2 files changed, 19 insertions, 2 deletions
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index f76189c..7293c6c 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1990,9 +1990,24 @@ public class AudioTrack * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). */ - public int write(ByteBuffer audioData, int sizeInBytes, + public int write(@NonNull ByteBuffer audioData, int sizeInBytes, @WriteMode int writeMode, long timestamp) { + if (mState == STATE_UNINITIALIZED) { + Log.e(TAG, "AudioTrack.write() called in invalid state STATE_UNINITIALIZED"); + return ERROR_INVALID_OPERATION; + } + + if ((writeMode != WRITE_BLOCKING) && (writeMode != WRITE_NON_BLOCKING)) { + Log.e(TAG, "AudioTrack.write() called with invalid blocking mode"); + return ERROR_BAD_VALUE; + } + + if (mDataLoadMode != MODE_STREAM) { + Log.e(TAG, "AudioTrack.write() with timestamp called for non-streaming mode track"); + return ERROR_INVALID_OPERATION; + } + if ((mAttributes.getFlags() & AudioAttributes.FLAG_HW_AV_SYNC) == 0) { Log.d(TAG, "AudioTrack.write() called on a regular AudioTrack. Ignoring pts..."); return write(audioData, sizeInBytes, writeMode); diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index 2acee04..b1a51a5 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -1018,7 +1018,9 @@ public final class MediaController { } public void post(int what, Object obj, Bundle data) { - obtainMessage(what, obj).sendToTarget(); + Message msg = obtainMessage(what, obj); + msg.setData(data); + msg.sendToTarget(); } } |