Back to Exoplayer

SonicAudioProcessor (ExoPlayer library)

docs/doc/reference/com/google/android/exoplayer2/audio/SonicAudioProcessor.html

latest11.6 KB
Original Source

Package com.google.android.exoplayer2.audio

Class SonicAudioProcessor

  • java.lang.Object

    • com.google.android.exoplayer2.audio.SonicAudioProcessor
  • All Implemented Interfaces:AudioProcessor


public classSonicAudioProcessorextends[Object](https://developer.android.com/reference/java/lang/Object.html "class or interface in java.lang")implements[AudioProcessor](AudioProcessor.html "interface in com.google.android.exoplayer2.audio")

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 AudioProcessor 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 from AudioProcessor.getOutput() until AudioProcessor.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 the inputBuffer 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. |

- 

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

- 

SAMPLE_RATE_NO_CHANGE

[@Deprecated](https://developer.android.com/reference/java/lang/Deprecated.html "class or interface in java.lang")public static final int SAMPLE_RATE_NO_CHANGE

Deprecated. See Also:Constant Field Values

Constructor Detail

- 

SonicAudioProcessor

public SonicAudioProcessor()

Deprecated.

Creates a new Sonic audio processor.

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 by isActive() may change, and the processor must be flushed 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 by isActive() may change, and the processor must be flushed 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. Pass SAMPLE_RATE_NO_CHANGE to output audio at the same sample rate as the input. After calling this method, call configure(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](AudioProcessor.AudioFormat.html "class in com.google.android.exoplayer2.audio")configure​([AudioProcessor.AudioFormat](AudioProcessor.AudioFormat.html "class in com.google.android.exoplayer2.audio")inputAudioFormat)
                                           throws[AudioProcessor.UnhandledAudioFormatException](AudioProcessor.UnhandledAudioFormatException.html "class in com.google.android.exoplayer2.audio")

Deprecated.

Description copied from interface: AudioProcessor

Configures the processor to process input audio with the specified format. After calling this method, call AudioProcessor.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. Call AudioProcessor.queueEndOfStream() when no more input will be supplied in the old input format.

Specified by:configure in interface AudioProcessorParameters:inputAudioFormat - The format of audio that will be queued after the next call to AudioProcessor.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 interface AudioProcessor

- 

queueInput

public final void queueInput​([ByteBuffer](https://developer.android.com/reference/java/nio/ByteBuffer.html "class or interface in java.nio")inputBuffer)

Deprecated.

Description copied from interface: AudioProcessor

Queues audio data between the position and limit of the inputBuffer for processing. After calling this method, processed output may be available via AudioProcessor.getOutput(). Calling queueInput(ByteBuffer) again invalidates any pending output. Specified by:queueInput in interface AudioProcessorParameters: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 to AudioProcessor.flush(). Calling AudioProcessor.getOutput() will return any remaining output data. Multiple calls may be required to read all of the remaining output data. AudioProcessor.isEnded() will return true once all remaining output data has been read. Specified by:queueEndOfStream in interface AudioProcessor

- 

getOutput

public final[ByteBuffer](https://developer.android.com/reference/java/nio/ByteBuffer.html "class or interface in java.nio")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 interface AudioProcessorReturns: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 from AudioProcessor.getOutput() until AudioProcessor.flush() has been called and more input has been queued. Specified by:isEnded in interface AudioProcessor

- 

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 interface AudioProcessor

- 

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 interface AudioProcessor