Class SonicAudioProcessor
- java.lang.Object
-
- com.google.android.exoplayer2.audio.SonicAudioProcessor
-
- All Implemented Interfaces:
AudioProcessor
public class SonicAudioProcessor extends Object implements AudioProcessor
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.AnAudioProcessor
that uses the Sonic library to modify audio speed/pitch/sample rate.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.audio.AudioProcessor
AudioProcessor.AudioFormat, AudioProcessor.UnhandledAudioFormatException
-
-
Field Summary
Fields Modifier and Type Field Description static int
SAMPLE_RATE_NO_CHANGE
Deprecated.-
Fields inherited from interface com.google.android.exoplayer2.audio.AudioProcessor
EMPTY_BUFFER
-
-
Constructor Summary
Constructors Constructor Description SonicAudioProcessor()
Deprecated.Creates a new Sonic audio processor.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description AudioProcessor.AudioFormat
configure(AudioProcessor.AudioFormat inputAudioFormat)
Deprecated.Configures the processor to process input audio with the specified format.void
flush()
Deprecated.Clears any buffered data and pending output.long
getMediaDuration(long playoutDuration)
Deprecated.Returns the media duration corresponding to the specified playout duration, taking speed adjustment into account.ByteBuffer
getOutput()
Deprecated.Returns a buffer containing processed output data between its position and limit.boolean
isActive()
Deprecated.Returns whether the processor is configured and will process input buffers.boolean
isEnded()
Deprecated.Returns whether this processor will return no more output fromAudioProcessor.getOutput()
untilAudioProcessor.flush()
has been called and more input has been queued.void
queueEndOfStream()
Deprecated.Queues an end of stream signal.void
queueInput(ByteBuffer inputBuffer)
Deprecated.Queues audio data between the position and limit of theinputBuffer
for processing.void
reset()
Deprecated.Resets the processor to its unconfigured state, releasing any resources.void
setOutputSampleRateHz(int sampleRateHz)
Deprecated.Sets the sample rate for output audio, in Hertz.void
setPitch(float pitch)
Deprecated.Sets the target playback pitch.void
setSpeed(float speed)
Deprecated.Sets the target playback speed.
-
-
-
Field Detail
-
SAMPLE_RATE_NO_CHANGE
@Deprecated public static final int SAMPLE_RATE_NO_CHANGE
Deprecated.- See Also:
- Constant Field Values
-
-
Method Detail
-
setSpeed
public final void setSpeed(float speed)
Deprecated.Sets the target playback speed. This method may only be called after draining data through the processor. The value returned byisActive()
may change, and the processor must beflushed
before queueing more data.- Parameters:
speed
- The target factor by which playback should be sped up.
-
setPitch
public final void setPitch(float pitch)
Deprecated.Sets the target playback pitch. This method may only be called after draining data through the processor. The value returned byisActive()
may change, and the processor must beflushed
before queueing more data.- Parameters:
pitch
- The target pitch.
-
setOutputSampleRateHz
public final void setOutputSampleRateHz(int sampleRateHz)
Deprecated.Sets the sample rate for output audio, in Hertz. PassSAMPLE_RATE_NO_CHANGE
to output audio at the same sample rate as the input. After calling this method, callconfigure(AudioFormat)
to configure the processor with the new sample rate.- Parameters:
sampleRateHz
- The sample rate for output audio, in Hertz.- See Also:
configure(AudioFormat)
-
getMediaDuration
public final long getMediaDuration(long playoutDuration)
Deprecated.Returns the media duration corresponding to the specified playout duration, taking speed adjustment into account.The scaling performed by this method will use the actual playback speed achieved by the audio processor, on average, since it was last flushed. This may differ very slightly from the target playback speed.
- Parameters:
playoutDuration
- The playout duration to scale.- Returns:
- The corresponding media duration, in the same units as
duration
.
-
configure
@CanIgnoreReturnValue public final AudioProcessor.AudioFormat configure(AudioProcessor.AudioFormat inputAudioFormat) throws AudioProcessor.UnhandledAudioFormatException
Deprecated.Description copied from interface:AudioProcessor
Configures the processor to process input audio with the specified format. After calling this method, callAudioProcessor.isActive()
to determine whether the audio processor is active. Returns the configured output audio format if this instance is active.After calling this method, it is necessary to
AudioProcessor.flush()
the processor to apply the new configuration. Before applying the new configuration, it is safe to queue input and get output in the old input/output formats. CallAudioProcessor.queueEndOfStream()
when no more input will be supplied in the old input format.- Specified by:
configure
in interfaceAudioProcessor
- Parameters:
inputAudioFormat
- The format of audio that will be queued after the next call toAudioProcessor.flush()
.- Returns:
- The configured output audio format if this instance is
active
. - Throws:
AudioProcessor.UnhandledAudioFormatException
- Thrown if the specified format can't be handled as input.
-
isActive
public final boolean isActive()
Deprecated.Description copied from interface:AudioProcessor
Returns whether the processor is configured and will process input buffers.- Specified by:
isActive
in interfaceAudioProcessor
-
queueInput
public final void queueInput(ByteBuffer inputBuffer)
Deprecated.Description copied from interface:AudioProcessor
Queues audio data between the position and limit of theinputBuffer
for processing. After calling this method, processed output may be available viaAudioProcessor.getOutput()
. CallingqueueInput(ByteBuffer)
again invalidates any pending output.- Specified by:
queueInput
in interfaceAudioProcessor
- Parameters:
inputBuffer
- The input buffer to process. It must be a direct byte buffer with native byte order. Its contents are treated as read-only. Its position will be advanced by the number of bytes consumed (which may be zero). The caller retains ownership of the provided buffer.
-
queueEndOfStream
public final void queueEndOfStream()
Deprecated.Description copied from interface:AudioProcessor
Queues an end of stream signal. After this method has been called,AudioProcessor.queueInput(ByteBuffer)
may not be called until after the next call toAudioProcessor.flush()
. CallingAudioProcessor.getOutput()
will return any remaining output data. Multiple calls may be required to read all of the remaining output data.AudioProcessor.isEnded()
will returntrue
once all remaining output data has been read.- Specified by:
queueEndOfStream
in interfaceAudioProcessor
-
getOutput
public final ByteBuffer getOutput()
Deprecated.Description copied from interface:AudioProcessor
Returns a buffer containing processed output data between its position and limit. The buffer will always be a direct byte buffer with native byte order. Calling this method invalidates any previously returned buffer. The buffer will be empty if no output is available.- Specified by:
getOutput
in interfaceAudioProcessor
- Returns:
- A buffer containing processed output data between its position and limit.
-
isEnded
public final boolean isEnded()
Deprecated.Description copied from interface:AudioProcessor
Returns whether this processor will return no more output fromAudioProcessor.getOutput()
untilAudioProcessor.flush()
has been called and more input has been queued.- Specified by:
isEnded
in interfaceAudioProcessor
-
flush
public final void flush()
Deprecated.Description copied from interface:AudioProcessor
Clears any buffered data and pending output. If the audio processor is active, also prepares the audio processor to receive a new stream of input in the last configured (pending) format.- Specified by:
flush
in interfaceAudioProcessor
-
reset
public final void reset()
Deprecated.Description copied from interface:AudioProcessor
Resets the processor to its unconfigured state, releasing any resources.- Specified by:
reset
in interfaceAudioProcessor
-
-