Loading media/java/android/media/AudioRecord.java +20 −8 Original line number Diff line number Diff line Loading @@ -1014,9 +1014,12 @@ public class AudioRecord implements AudioRouting * Reads audio data from the audio hardware for recording into a byte array. * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * @param audioData the array to which the recorded audio data is written. * @param offsetInBytes index in audioData from which the data is written expressed in bytes. * @param offsetInBytes index in audioData to which the data is written expressed in bytes. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of requested bytes. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1025,7 +1028,8 @@ public class AudioRecord implements AudioRouting * @return the number of bytes that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. */ public int read(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @ReadMode int readMode) { Loading Loading @@ -1053,12 +1057,14 @@ public class AudioRecord implements AudioRouting * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInShorts index in audioData from which the data is written expressed in shorts. * @param offsetInShorts index in audioData to which the data is written expressed in shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of shorts will not exceed sizeInShorts. * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts) { return read(audioData, offsetInShorts, sizeInShorts, READ_BLOCKING); Loading @@ -1070,7 +1076,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInShorts index in audioData from which the data is written expressed in shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1079,7 +1087,7 @@ public class AudioRecord implements AudioRouting * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of shorts will not exceed sizeInShorts. * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @ReadMode int readMode) { Loading Loading @@ -1108,7 +1116,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_FLOAT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInFloats index in audioData from which the data is written. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of requested floats. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1117,7 +1127,7 @@ public class AudioRecord implements AudioRouting * @return the number of floats that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of floats will not exceed sizeInFloats. * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int read(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @ReadMode int readMode) { Loading Loading @@ -1154,6 +1164,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). Loading @@ -1161,7 +1172,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes read will truncated to be a multiple of the frame size. * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes) { return read(audioBuffer, sizeInBytes, READ_BLOCKING); Loading @@ -1175,6 +1186,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). Loading @@ -1187,7 +1199,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes read will truncated to be a multiple of the frame size. * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes, @ReadMode int readMode) { if (mState != STATE_INITIALIZED) { Loading media/java/android/media/AudioTrack.java +25 −2 Original line number Diff line number Diff line Loading @@ -1774,6 +1774,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the write will normally block until all the data has been enqueued for * playback, and will return a full transfer count. However, if the track is stopped or paused Loading @@ -1786,7 +1787,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of bytes that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if Loading @@ -1795,6 +1798,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. * * This is equivalent to {@link #write(byte[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. Loading @@ -1808,6 +1813,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the blocking behavior depends on the write mode. If the write mode is * {@link #WRITE_BLOCKING}, the write will normally block until all the data has been enqueued Loading @@ -1823,7 +1829,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -1838,6 +1846,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. */ public int write(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @WriteMode int writeMode) { Loading Loading @@ -1887,7 +1897,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInShorts the offset expressed in shorts in audioData where the data to play * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of shorts that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if Loading @@ -1896,6 +1908,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. * * This is equivalent to {@link #write(short[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. Loading Loading @@ -1923,7 +1936,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to write. * @param offsetInShorts the offset expressed in shorts in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -1938,6 +1953,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int write(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @WriteMode int writeMode) { Loading Loading @@ -1999,7 +2015,9 @@ public class AudioTrack implements AudioRouting * to provide samples values within the nominal range. * @param offsetInFloats the offset, expressed as a number of floats, * in audioData where the data to write starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of floats to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -2014,6 +2032,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int write(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @WriteMode int writeMode) { Loading Loading @@ -2075,7 +2094,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. * @param sizeInBytes number of bytes to write. * @param sizeInBytes number of bytes to write. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. Loading Loading @@ -2142,7 +2163,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. * @param sizeInBytes number of bytes to write. * @param sizeInBytes number of bytes to write. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. * <BR>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading Loading
media/java/android/media/AudioRecord.java +20 −8 Original line number Diff line number Diff line Loading @@ -1014,9 +1014,12 @@ public class AudioRecord implements AudioRouting * Reads audio data from the audio hardware for recording into a byte array. * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * @param audioData the array to which the recorded audio data is written. * @param offsetInBytes index in audioData from which the data is written expressed in bytes. * @param offsetInBytes index in audioData to which the data is written expressed in bytes. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of requested bytes. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1025,7 +1028,8 @@ public class AudioRecord implements AudioRouting * @return the number of bytes that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. */ public int read(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @ReadMode int readMode) { Loading Loading @@ -1053,12 +1057,14 @@ public class AudioRecord implements AudioRouting * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInShorts index in audioData from which the data is written expressed in shorts. * @param offsetInShorts index in audioData to which the data is written expressed in shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of shorts will not exceed sizeInShorts. * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts) { return read(audioData, offsetInShorts, sizeInShorts, READ_BLOCKING); Loading @@ -1070,7 +1076,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInShorts index in audioData from which the data is written expressed in shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1079,7 +1087,7 @@ public class AudioRecord implements AudioRouting * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of shorts will not exceed sizeInShorts. * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @ReadMode int readMode) { Loading Loading @@ -1108,7 +1116,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_FLOAT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInFloats index in audioData from which the data is written. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of requested floats. * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. Loading @@ -1117,7 +1127,7 @@ public class AudioRecord implements AudioRouting * @return the number of floats that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of floats will not exceed sizeInFloats. * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int read(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @ReadMode int readMode) { Loading Loading @@ -1154,6 +1164,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). Loading @@ -1161,7 +1172,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes read will truncated to be a multiple of the frame size. * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes) { return read(audioBuffer, sizeInBytes, READ_BLOCKING); Loading @@ -1175,6 +1186,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). Loading @@ -1187,7 +1199,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. * The number of bytes read will truncated to be a multiple of the frame size. * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes, @ReadMode int readMode) { if (mState != STATE_INITIALIZED) { Loading
media/java/android/media/AudioTrack.java +25 −2 Original line number Diff line number Diff line Loading @@ -1774,6 +1774,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the write will normally block until all the data has been enqueued for * playback, and will return a full transfer count. However, if the track is stopped or paused Loading @@ -1786,7 +1787,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of bytes that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if Loading @@ -1795,6 +1798,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. * * This is equivalent to {@link #write(byte[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. Loading @@ -1808,6 +1813,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the blocking behavior depends on the write mode. If the write mode is * {@link #WRITE_BLOCKING}, the write will normally block until all the data has been enqueued Loading @@ -1823,7 +1829,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -1838,6 +1846,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of bytes will be a multiple of the frame size in bytes * not to exceed sizeInBytes. */ public int write(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @WriteMode int writeMode) { Loading Loading @@ -1887,7 +1897,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInShorts the offset expressed in shorts in audioData where the data to play * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of shorts that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if Loading @@ -1896,6 +1908,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. * * This is equivalent to {@link #write(short[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. Loading Loading @@ -1923,7 +1936,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to write. * @param offsetInShorts the offset expressed in shorts in audioData where the data to write * starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -1938,6 +1953,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int write(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @WriteMode int writeMode) { Loading Loading @@ -1999,7 +2015,9 @@ public class AudioTrack implements AudioRouting * to provide samples values within the nominal range. * @param offsetInFloats the offset, expressed as a number of floats, * in audioData where the data to write starts. * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of floats to write in audioData after the offset. * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading @@ -2014,6 +2032,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * 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(). * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int write(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @WriteMode int writeMode) { Loading Loading @@ -2075,7 +2094,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. * @param sizeInBytes number of bytes to write. * @param sizeInBytes number of bytes to write. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. Loading Loading @@ -2142,7 +2163,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. * @param sizeInBytes number of bytes to write. * @param sizeInBytes number of bytes to write. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. * <BR>With {@link #WRITE_BLOCKING}, the write will block until all data has been written Loading