Class ForwardingAudioSink
- java.lang.Object
-
- com.google.android.exoplayer2.audio.ForwardingAudioSink
-
- All Implemented Interfaces:
AudioSink
- Direct Known Subclasses:
CapturingAudioSink,OggFileAudioBufferSink
@Deprecated public class ForwardingAudioSink extends Object implements AudioSink
Deprecated.com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.An overridableAudioSinkimplementation forwarding all methods to another sink.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.audio.AudioSink
AudioSink.ConfigurationException, AudioSink.InitializationException, AudioSink.Listener, AudioSink.SinkFormatSupport, AudioSink.UnexpectedDiscontinuityException, AudioSink.WriteException
-
-
Field Summary
-
Fields inherited from interface com.google.android.exoplayer2.audio.AudioSink
CURRENT_POSITION_NOT_SET, SINK_FORMAT_SUPPORTED_DIRECTLY, SINK_FORMAT_SUPPORTED_WITH_TRANSCODING, SINK_FORMAT_UNSUPPORTED
-
-
Constructor Summary
Constructors Constructor Description ForwardingAudioSink(AudioSink sink)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidconfigure(Format inputFormat, int specifiedBufferSize, int[] outputChannels)Deprecated.Configures (or reconfigures) the sink.voiddisableTunneling()Deprecated.Disables tunneling.voidenableTunnelingV21()Deprecated.Enables tunneling, if possible.voidexperimentalFlushWithoutAudioTrackRelease()Deprecated.Flushes the sink, after which it is ready to receive buffers from a new playback position.voidflush()Deprecated.Flushes the sink, after which it is ready to receive buffers from a new playback position.AudioAttributesgetAudioAttributes()Deprecated.Returns the audio attributes used for audio playback, ornullif the sink does not use audio attributes.longgetCurrentPositionUs(boolean sourceEnded)Deprecated.Returns the playback position in the stream starting at zero, in microseconds, orAudioSink.CURRENT_POSITION_NOT_SETif it is not yet available.@com.google.android.exoplayer2.audio.AudioSink.SinkFormatSupport intgetFormatSupport(Format format)Deprecated.Returns the level of support that the sink provides for a givenFormat.PlaybackParametersgetPlaybackParameters()Deprecated.Returns the activePlaybackParameters.booleangetSkipSilenceEnabled()Deprecated.Returns whether silences are skipped in the audio stream.booleanhandleBuffer(ByteBuffer buffer, long presentationTimeUs, int encodedAccessUnitCount)Deprecated.Attempts to process data from aByteBuffer, starting from its current position and ending at its limit (exclusive).voidhandleDiscontinuity()Deprecated.Signals to the sink that the next buffer may be discontinuous with the previous buffer.booleanhasPendingData()Deprecated.Returns whether the sink has data pending that has not been consumed yet.booleanisEnded()Deprecated.Returns whetherAudioSink.playToEndOfStream()has been called and all buffers have been processed.voidpause()Deprecated.Pauses playback.voidplay()Deprecated.Starts or resumes consuming audio if initialized.voidplayToEndOfStream()Deprecated.Processes any remaining data.voidreset()Deprecated.Resets the sink, releasing any resources that it currently holds.voidsetAudioAttributes(AudioAttributes audioAttributes)Deprecated.Sets attributes for audio playback.voidsetAudioSessionId(int audioSessionId)Deprecated.Sets the audio session id.voidsetAuxEffectInfo(AuxEffectInfo auxEffectInfo)Deprecated.Sets the auxiliary effect.voidsetListener(AudioSink.Listener listener)Deprecated.Sets the listener for sink events, which should be the audio renderer.voidsetOutputStreamOffsetUs(long outputStreamOffsetUs)Deprecated.Sets the offset that is added to the media timestamp before it is passed aspresentationTimeUsinAudioSink.handleBuffer(ByteBuffer, long, int).voidsetPlaybackParameters(PlaybackParameters playbackParameters)Deprecated.Attempts to set the playback parameters.voidsetPlayerId(PlayerId playerId)Deprecated.Sets thePlayerIdof the player using this audio sink.voidsetPreferredDevice(AudioDeviceInfo audioDeviceInfo)Deprecated.Sets the preferred audio device.voidsetSkipSilenceEnabled(boolean skipSilenceEnabled)Deprecated.Sets whether silences should be skipped in the audio stream.voidsetVolume(float volume)Deprecated.Sets the playback volume.booleansupportsFormat(Format format)Deprecated.Returns whether the sink supports a givenFormat.
-
-
-
Constructor Detail
-
ForwardingAudioSink
public ForwardingAudioSink(AudioSink sink)
Deprecated.
-
-
Method Detail
-
setListener
public void setListener(AudioSink.Listener listener)
Deprecated.Description copied from interface:AudioSinkSets the listener for sink events, which should be the audio renderer.- Specified by:
setListenerin interfaceAudioSink- Parameters:
listener- The listener for sink events, which should be the audio renderer.
-
setPlayerId
public void setPlayerId(@Nullable PlayerId playerId)Deprecated.Description copied from interface:AudioSinkSets thePlayerIdof the player using this audio sink.- Specified by:
setPlayerIdin interfaceAudioSink- Parameters:
playerId- ThePlayerId, or null to clear a previously set id.
-
supportsFormat
public boolean supportsFormat(Format format)
Deprecated.Description copied from interface:AudioSinkReturns whether the sink supports a givenFormat.- Specified by:
supportsFormatin interfaceAudioSink- Parameters:
format- The format.- Returns:
- Whether the sink supports the format.
-
getFormatSupport
public @com.google.android.exoplayer2.audio.AudioSink.SinkFormatSupport int getFormatSupport(Format format)
Deprecated.Description copied from interface:AudioSinkReturns the level of support that the sink provides for a givenFormat.- Specified by:
getFormatSupportin interfaceAudioSink- Parameters:
format- The format.- Returns:
- The level of support provided.
-
getCurrentPositionUs
public long getCurrentPositionUs(boolean sourceEnded)
Deprecated.Description copied from interface:AudioSinkReturns the playback position in the stream starting at zero, in microseconds, orAudioSink.CURRENT_POSITION_NOT_SETif it is not yet available.- Specified by:
getCurrentPositionUsin interfaceAudioSink- Parameters:
sourceEnded- Specifytrueif no more input buffers will be provided.- Returns:
- The playback position relative to the start of playback, in microseconds.
-
configure
public void configure(Format inputFormat, int specifiedBufferSize, @Nullable int[] outputChannels) throws AudioSink.ConfigurationException
Deprecated.Description copied from interface:AudioSinkConfigures (or reconfigures) the sink.- Specified by:
configurein interfaceAudioSink- Parameters:
inputFormat- 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. Specifynullto leave the input unchanged. Otherwise, the element at indexispecifies index of the input channel to map to output channeliwhen preprocessing input buffers. After the map is applied the audio data will haveoutputChannels.lengthchannels.- Throws:
AudioSink.ConfigurationException- If an error occurs configuring the sink.
-
play
public void play()
Deprecated.Description copied from interface:AudioSinkStarts or resumes consuming audio if initialized.
-
handleDiscontinuity
public void handleDiscontinuity()
Deprecated.Description copied from interface:AudioSinkSignals to the sink that the next buffer may be discontinuous with the previous buffer.- Specified by:
handleDiscontinuityin interfaceAudioSink
-
handleBuffer
public boolean handleBuffer(ByteBuffer buffer, long presentationTimeUs, int encodedAccessUnitCount) throws AudioSink.InitializationException, AudioSink.WriteException
Deprecated.Description copied from interface:AudioSinkAttempts to process data from aByteBuffer, starting from its current position and ending at its limit (exclusive). The position of theByteBufferis advanced by the number of bytes that were handled.AudioSink.Listener.onPositionDiscontinuity()will be called ifpresentationTimeUsis 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
ByteBuffermust be provided to subsequent calls until it has been fully consumed, except in the case of an intervening call toAudioSink.flush()(or toAudioSink.configure(Format, int, int[])that causes the sink to be flushed).- Specified by:
handleBufferin interfaceAudioSink- Parameters:
buffer- 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.- Returns:
- Whether the buffer was handled fully.
- Throws:
AudioSink.InitializationException- If an error occurs initializing the sink.AudioSink.WriteException- If an error occurs writing the audio data.
-
playToEndOfStream
public void playToEndOfStream() throws AudioSink.WriteExceptionDeprecated.Description copied from interface:AudioSinkProcesses any remaining data.AudioSink.isEnded()will returntruewhen no data remains.- Specified by:
playToEndOfStreamin interfaceAudioSink- Throws:
AudioSink.WriteException- If an error occurs draining data to the sink.
-
isEnded
public boolean isEnded()
Deprecated.Description copied from interface:AudioSinkReturns whetherAudioSink.playToEndOfStream()has been called and all buffers have been processed.
-
hasPendingData
public boolean hasPendingData()
Deprecated.Description copied from interface:AudioSinkReturns whether the sink has data pending that has not been consumed yet.- Specified by:
hasPendingDatain interfaceAudioSink
-
setPlaybackParameters
public void setPlaybackParameters(PlaybackParameters playbackParameters)
Deprecated.Description copied from interface:AudioSinkAttempts to set the playback parameters. The audio sink may override these parameters if they are not supported.- Specified by:
setPlaybackParametersin interfaceAudioSink- Parameters:
playbackParameters- The new playback parameters to attempt to set.
-
getPlaybackParameters
public PlaybackParameters getPlaybackParameters()
Deprecated.Description copied from interface:AudioSinkReturns the activePlaybackParameters.- Specified by:
getPlaybackParametersin interfaceAudioSink
-
setSkipSilenceEnabled
public void setSkipSilenceEnabled(boolean skipSilenceEnabled)
Deprecated.Description copied from interface:AudioSinkSets whether silences should be skipped in the audio stream.- Specified by:
setSkipSilenceEnabledin interfaceAudioSink
-
getSkipSilenceEnabled
public boolean getSkipSilenceEnabled()
Deprecated.Description copied from interface:AudioSinkReturns whether silences are skipped in the audio stream.- Specified by:
getSkipSilenceEnabledin interfaceAudioSink
-
setAudioAttributes
public void setAudioAttributes(AudioAttributes audioAttributes)
Deprecated.Description copied from interface:AudioSinkSets attributes for audio playback. If the attributes have changed and if the sink is not configured for use with tunneling, then it is reset and the audio session id is cleared.If the sink is configured for use with tunneling then the audio attributes are ignored. The sink is not reset and the audio session id is not cleared. The passed attributes will be used if the sink is later re-configured into non-tunneled mode.
- Specified by:
setAudioAttributesin interfaceAudioSink- Parameters:
audioAttributes- The attributes for audio playback.
-
getAudioAttributes
@Nullable public AudioAttributes getAudioAttributes()
Deprecated.Description copied from interface:AudioSinkReturns the audio attributes used for audio playback, ornullif the sink does not use audio attributes.- Specified by:
getAudioAttributesin interfaceAudioSink
-
setAudioSessionId
public void setAudioSessionId(int audioSessionId)
Deprecated.Description copied from interface:AudioSinkSets the audio session id.- Specified by:
setAudioSessionIdin interfaceAudioSink
-
setAuxEffectInfo
public void setAuxEffectInfo(AuxEffectInfo auxEffectInfo)
Deprecated.Description copied from interface:AudioSinkSets the auxiliary effect.- Specified by:
setAuxEffectInfoin interfaceAudioSink
-
setPreferredDevice
@RequiresApi(23) public void setPreferredDevice(@Nullable AudioDeviceInfo audioDeviceInfo)Deprecated.Description copied from interface:AudioSinkSets the preferred audio device.- Specified by:
setPreferredDevicein interfaceAudioSink- Parameters:
audioDeviceInfo- The preferred audio device, or null to restore the default.
-
setOutputStreamOffsetUs
public void setOutputStreamOffsetUs(long outputStreamOffsetUs)
Deprecated.Description copied from interface:AudioSinkSets the offset that is added to the media timestamp before it is passed aspresentationTimeUsinAudioSink.handleBuffer(ByteBuffer, long, int).- Specified by:
setOutputStreamOffsetUsin interfaceAudioSink- Parameters:
outputStreamOffsetUs- The output stream offset in microseconds.
-
enableTunnelingV21
public void enableTunnelingV21()
Deprecated.Description copied from interface:AudioSinkEnables tunneling, if possible. The sink is reset if tunneling was previously disabled. Enabling tunneling is only possible if the sink is based on a platformAudioTrack, and requires platform API version 21 onwards.- Specified by:
enableTunnelingV21in interfaceAudioSink
-
disableTunneling
public void disableTunneling()
Deprecated.Description copied from interface:AudioSinkDisables tunneling. If tunneling was previously enabled then the sink is reset and any audio session id is cleared.- Specified by:
disableTunnelingin interfaceAudioSink
-
setVolume
public void setVolume(float volume)
Deprecated.Description copied from interface:AudioSinkSets the playback volume.
-
pause
public void pause()
Deprecated.Description copied from interface:AudioSinkPauses playback.
-
flush
public void flush()
Deprecated.Description copied from interface:AudioSinkFlushes the sink, after which it is ready to receive buffers from a new playback position.The audio session may remain active until
AudioSink.reset()is called.
-
experimentalFlushWithoutAudioTrackRelease
public void experimentalFlushWithoutAudioTrackRelease()
Deprecated.Description copied from interface:AudioSinkFlushes the sink, after which it is ready to receive buffers from a new playback position.Does not release the
AudioTrackheld by the sink.This method is experimental, and will be renamed or removed in a future release.
Only for experimental use as part of
MediaCodecAudioRenderer.experimentalSetEnableKeepAudioTrackOnSeek(boolean).- Specified by:
experimentalFlushWithoutAudioTrackReleasein interfaceAudioSink
-
-