java.lang.Object | |
↳ | android.media.AudioRecord |
The AudioRecord class manages the audio resources for Java applications to record audio from the audio input hardware of the platform. This is achieved by "pulling" (reading) the data from the AudioRecord object. The application is responsible for polling the AudioRecord object in time using one of the following three methods: read(byte[], int, int), read(short[], int, int) or read(ByteBuffer, int). The choice of which method to use will be based on the audio data storage format that is the most convenient for the user of AudioRecord.
Upon creation, an AudioRecord object initializes its associated audio buffer that it will fill with the new audio data. The size of this buffer, specified during the construction, determines how long an AudioRecord can record before "over-running" data that has not been read yet. Data should be read from the audio hardware in chunks of sizes inferior to the total recording buffer size.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AudioRecord.OnRecordPositionUpdateListener | Interface definition for a callback to be invoked when an AudioRecord has reached a notification marker set by setNotificationMarkerPosition(int) or for periodic updates on the progress of the record head, as set by setPositionNotificationPeriod(int). |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | ERROR | Denotes a generic operation failure. | |||||||||
int | ERROR_BAD_VALUE | Denotes a failure due to the use of an invalid value. | |||||||||
int | ERROR_INVALID_OPERATION | Denotes a failure due to the improper use of a method. | |||||||||
int | RECORDSTATE_RECORDING | indicates AudioRecord recording state is recording | |||||||||
int | RECORDSTATE_STOPPED | indicates AudioRecord recording state is not recording | |||||||||
int | STATE_INITIALIZED | indicates AudioRecord state is ready to be used | |||||||||
int | STATE_UNINITIALIZED | indicates AudioRecord state is not successfully initialized. | |||||||||
int | SUCCESS | Denotes a successful operation. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Class constructor.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the configured audio data format.
| |||||||||||
Returns the audio recording source.
| |||||||||||
Returns the configured channel configuration.
| |||||||||||
Returns the configured number of channels.
| |||||||||||
Returns the minimum buffer size required for the successful creation of an AudioRecord
object.
| |||||||||||
Returns the notification marker position expressed in frames.
| |||||||||||
Returns the notification update period expressed in frames.
| |||||||||||
Returns the recording state of the AudioRecord instance.
| |||||||||||
Returns the configured audio data sample rate in Hz
| |||||||||||
Returns the state of the AudioRecord instance.
| |||||||||||
Reads audio data from the audio hardware for recording into a buffer.
| |||||||||||
Reads audio data from the audio hardware for recording into a buffer.
| |||||||||||
Reads audio data from the audio hardware for recording into a direct buffer.
| |||||||||||
Releases the native AudioRecord resources.
| |||||||||||
Sets the marker position at which the listener is called, if set with
setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or
setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
| |||||||||||
Sets the period at which the listener is called, if set with
setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or
setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
| |||||||||||
Sets the listener the AudioRecord notifies when a previously set marker is reached or
for each periodic record head position update.
| |||||||||||
Sets the listener the AudioRecord notifies when a previously set marker is reached or
for each periodic record head position update.
| |||||||||||
Starts recording from the AudioRecord instance.
| |||||||||||
Stops recording.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Is called before the object's memory is being reclaimed by the VM.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class java.lang.Object
|
Denotes a generic operation failure.
Denotes a failure due to the use of an invalid value.
Denotes a failure due to the improper use of a method.
indicates AudioRecord recording state is recording
indicates AudioRecord recording state is not recording
indicates AudioRecord state is ready to be used
indicates AudioRecord state is not successfully initialized.
Denotes a successful operation.
Class constructor.
audioSource | the recording source. See MediaRecorder.AudioSource for recording source definitions. |
---|---|
sampleRateInHz | the sample rate expressed in Hertz. Examples of rates are (but not limited to) 44100, 22050 and 11025. |
channelConfig | describes the configuration of the audio channels. See CHANNEL_CONFIGURATION_MONO and CHANNEL_CONFIGURATION_STEREO |
audioFormat | the format in which the audio data is represented. See ENCODING_PCM_16BIT and ENCODING_PCM_8BIT |
bufferSizeInBytes | the total size (in bytes) of the buffer where audio data is written to during the recording. New audio data can be read from this buffer in smaller chunks than this size. See getMinBufferSize(int, int, int) to determine the minimum required buffer size for the successful creation of an AudioRecord instance. Using values smaller than getMinBufferSize() will result in an initialization failure. |
IllegalArgumentException |
---|
Returns the configured audio data format. See ENCODING_PCM_16BIT and ENCODING_PCM_8BIT.
Returns the audio recording source.
Returns the configured channel configuration. See CHANNEL_CONFIGURATION_MONO and CHANNEL_CONFIGURATION_STEREO.
Returns the configured number of channels.
Returns the minimum buffer size required for the successful creation of an AudioRecord object. Note that this size doesn't guarantee a smooth recording under load, and higher values should be chosen according to the expected frequency at which the AudioRecord instance will be polled for new data.
sampleRateInHz | the sample rate expressed in Hertz. |
---|---|
channelConfig | describes the configuration of the audio channels. See CHANNEL_CONFIGURATION_MONO and CHANNEL_CONFIGURATION_STEREO |
audioFormat | the format in which the audio data is represented. See ENCODING_PCM_16BIT. |
Returns the notification marker position expressed in frames.
Returns the notification update period expressed in frames.
Returns the recording state of the AudioRecord instance.
Returns the configured audio data sample rate in Hz
Returns the state of the AudioRecord instance. This is useful after the AudioRecord instance has been created to check if it was initialized properly. This ensures that the appropriate hardware resources have been acquired.
Reads audio data from the audio hardware for recording into a buffer.
audioData | the array to which the recorded audio data is written. |
---|---|
offsetInShorts | index in audioData from which the data is written expressed in shorts. |
sizeInShorts | the number of requested shorts. |
Reads audio data from the audio hardware for recording into a buffer.
audioData | the array to which the recorded audio data is written. |
---|---|
offsetInBytes | index in audioData from which the data is written expressed in bytes. |
sizeInBytes | the number of requested bytes. |
Reads audio data from the audio hardware for recording into a direct buffer. If this buffer is not a direct buffer, this method will always return 0.
audioBuffer | the direct buffer to which the recorded audio data is written. |
---|---|
sizeInBytes | the number of requested bytes. |
Releases the native AudioRecord resources. The object can no longer be used and the reference should be set to null after a call to release()
Sets the marker position at which the listener is called, if set with setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
markerInFrames | marker position expressed in frames |
---|
Sets the period at which the listener is called, if set with setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
periodInFrames | update period expressed in frames |
---|
Sets the listener the AudioRecord notifies when a previously set marker is reached or for each periodic record head position update.
Sets the listener the AudioRecord notifies when a previously set marker is reached or for each periodic record head position update. Use this method to receive AudioRecord events in the Handler associated with another thread than the one in which you created the AudioTrack instance.
handler | the Handler that will receive the event notification messages. |
---|
Starts recording from the AudioRecord instance.
IllegalStateException |
---|
Stops recording.
IllegalStateException |
---|
Is called before the object's memory is being reclaimed by the VM. This can only happen once the VM has detected, during a run of the garbage collector, that the object is no longer reachable by any thread of the running application.
The method can be used to free system resources or perform other cleanup
before the object is garbage collected. The default implementation of the
method is empty, which is also expected by the VM, but subclasses can
override finalize()
as required. Uncaught exceptions which are
thrown during the execution of this method cause it to terminate
immediately but are otherwise ignored.
Note that the VM does guarantee that finalize()
is called at most
once for any object, but it doesn't guarantee when (if at all) finalize()
will be called. For example, object B's finalize()
can delay the execution of object A's finalize()
method and
therefore it can delay the reclamation of A's memory. To be safe, use a
ReferenceQueue, because it provides more control
over the way the VM deals with references during garbage collection.