AudioSink, Dumper.Dumpablepublic final class CapturingAudioSink extends ForwardingAudioSink implements Dumper.Dumpable
ForwardingAudioSink that captures configuration, discontinuity and buffer events.AudioSink.ConfigurationException, AudioSink.InitializationException, AudioSink.Listener, AudioSink.SinkFormatSupport, AudioSink.WriteExceptionCURRENT_POSITION_NOT_SET, SINK_FORMAT_SUPPORTED_DIRECTLY, SINK_FORMAT_SUPPORTED_WITH_TRANSCODING, SINK_FORMAT_UNSUPPORTED| Constructor | Description |
|---|---|
CapturingAudioSink(AudioSink sink) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
configure(Format inputFormat,
int specifiedBufferSize,
int[] outputChannels) |
Configures (or reconfigures) the sink.
|
void |
dump(Dumper dumper) |
Dumps the fields of the object using the
dumper. |
void |
flush() |
Flushes the sink, after which it is ready to receive buffers from a new playback position.
|
boolean |
handleBuffer(ByteBuffer buffer,
long presentationTimeUs,
int encodedAccessUnitCount) |
Attempts to process data from a
ByteBuffer, starting from its current position and
ending at its limit (exclusive). |
void |
handleDiscontinuity() |
Signals to the sink that the next buffer may be discontinuous with the previous buffer.
|
void |
reset() |
Resets the renderer, releasing any resources that it currently holds.
|
disableTunneling, enableTunnelingV21, experimentalFlushWithoutAudioTrackRelease, getCurrentPositionUs, getFormatSupport, getPlaybackParameters, getSkipSilenceEnabled, hasPendingData, isEnded, pause, play, playToEndOfStream, setAudioAttributes, setAudioSessionId, setAuxEffectInfo, setListener, setPlaybackParameters, setSkipSilenceEnabled, setVolume, supportsFormatpublic CapturingAudioSink(AudioSink sink)
public void configure(Format inputFormat, int specifiedBufferSize, @Nullable int[] outputChannels) throws AudioSink.ConfigurationException
AudioSinkconfigure in interface AudioSinkconfigure in class ForwardingAudioSinkinputFormat - The format of audio data provided in the input buffers.specifiedBufferSize - A specific size for the playback buffer in bytes, or 0 to infer a
suitable buffer size.outputChannels - A mapping from input to output channels that is applied to this sink's
input as a preprocessing step, if handling PCM input. Specify null to leave the
input unchanged. Otherwise, the element at index i specifies index of the input
channel to map to output channel i when preprocessing input buffers. After the map
is applied the audio data will have outputChannels.length channels.AudioSink.ConfigurationException - If an error occurs configuring the sink.public void handleDiscontinuity()
AudioSinkhandleDiscontinuity in interface AudioSinkhandleDiscontinuity in class ForwardingAudioSinkpublic boolean handleBuffer(ByteBuffer buffer, long presentationTimeUs, int encodedAccessUnitCount) throws AudioSink.InitializationException, AudioSink.WriteException
AudioSinkByteBuffer, starting from its current position and
ending at its limit (exclusive). The position of the ByteBuffer is advanced by the
number of bytes that were handled. AudioSink.Listener.onPositionDiscontinuity() will be called if
presentationTimeUs is discontinuous with the last buffer handled since the last reset.
Returns whether the data was handled in full. If the data was not handled in full then the
same ByteBuffer must be provided to subsequent calls until it has been fully consumed,
except in the case of an intervening call to AudioSink.flush() (or to AudioSink.configure(Format,
int, int[]) that causes the sink to be flushed).
handleBuffer in interface AudioSinkhandleBuffer in class ForwardingAudioSinkbuffer - The buffer containing audio data.presentationTimeUs - The presentation timestamp of the buffer in microseconds.encodedAccessUnitCount - The number of encoded access units in the buffer, or 1 if the
buffer contains PCM audio. This allows batching multiple encoded access units in one
buffer.AudioSink.InitializationException - If an error occurs initializing the sink.AudioSink.WriteException - If an error occurs writing the audio data.public void flush()
AudioSinkThe audio session may remain active until AudioSink.reset() is called.
flush in interface AudioSinkflush in class ForwardingAudioSinkpublic void reset()
AudioSinkreset in interface AudioSinkreset in class ForwardingAudioSinkpublic void dump(Dumper dumper)
Dumper.Dumpabledumper.dump in interface Dumper.Dumpabledumper - The Dumper to be used to dump fields.