Class SonicAudioProcessor

    • Field Detail

      • SAMPLE_RATE_NO_CHANGE

        public static final int SAMPLE_RATE_NO_CHANGE
        Indicates that the output sample rate should be the same as the input.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SonicAudioProcessor

        public SonicAudioProcessor()
        Creates a new Sonic audio processor.
    • Method Detail

      • setSpeed

        public void setSpeed​(float speed)
        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 void setPitch​(float pitch)
        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 void setOutputSampleRateHz​(int sampleRateHz)
        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 long getMediaDuration​(long playoutDuration)
        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.
      • isActive

        public boolean isActive()
        Description copied from interface: AudioProcessor
        Returns whether the processor is configured and will process input buffers.
        Specified by:
        isActive in interface AudioProcessor
      • queueInput

        public void queueInput​(ByteBuffer inputBuffer)
        Description copied from interface: AudioProcessor
        Queues audio data between the position and limit of the input buffer for processing. buffer 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. Calling this method invalidates any previous buffer returned by AudioProcessor.getOutput().
        Specified by:
        queueInput in interface AudioProcessor
        Parameters:
        inputBuffer - The input buffer to process.
      • getOutput

        public ByteBuffer getOutput()
        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 AudioProcessor
        Returns:
        A buffer containing processed output data between its position and limit.
      • flush

        public void flush()
        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 void reset()
        Description copied from interface: AudioProcessor
        Resets the processor to its unconfigured state, releasing any resources.
        Specified by:
        reset in interface AudioProcessor