Class ALAudioSink

  • All Implemented Interfaces:
    AudioSink

    public class ALAudioSink
    extends Object
    implements AudioSink
    OpenAL AudioSink implementation.

    Besides given AudioSink functionality, implementation is fully functional regarding AudioFormat and all OpenAL parameter.

    • All OpenAL parameter can be queried
    • Instance can be constructed with an OpenAL device and context, see #ALAudioSink(ALCdevice, ALCcontext)
    • Initialization can be performed with OpenAL paramters, see #init(int, int, int, int, int, float, int, int, int)

    • Method Detail

      • isInitialized

        public static boolean isInitialized()
        Returns true if OpenAL has been loaded and static fields ALC, AL and ALExt have been initialized successfully, otherwise false.
      • getAL

        public static final AL getAL()
        Return OpenAL global AL.
      • getALC

        public static final ALC getALC()
        Return OpenAL global ALC.
      • getALExt

        public static final ALExt getALExt()
        Return OpenAL global ALExt.
      • getDeviceSpec

        public final String getDeviceSpec()
        Return this instance's OpenAL ALCdevice specifier.
      • getALSource

        public final int getALSource()
        Return this instance's OpenAL source ID.
      • hasSOFTBufferSamples

        public final boolean hasSOFTBufferSamples()
        Return whether OpenAL extension AL_SOFT_buffer_samples is available.
      • hasEXTMcFormats

        public final boolean hasEXTMcFormats()
        Return whether OpenAL extension AL_EXT_MCFORMATS is available.
      • hasEXTFloat32

        public final boolean hasEXTFloat32()
        Return whether OpenAL extension AL_EXT_FLOAT32 is available.
      • hasEXTDouble

        public final boolean hasEXTDouble()
        Return whether OpenAL extension AL_EXT_DOUBLE is available.
      • hasALCThreadLocalContext

        public final boolean hasALCThreadLocalContext()
        Return whether OpenAL extension ALC_EXT_thread_local_context is available.
      • getALChannelLayout

        public final int getALChannelLayout()
        Return this instance's OpenAL channel layout, set after #init(AudioFormat, float, int, int, int).
      • getALSampleType

        public final int getALSampleType()
        Return this instance's OpenAL sample type, set after #init(AudioFormat, float, int, int, int).
      • getALFormat

        public final int getALFormat()
        Return this instance's OpenAL format, set after #init(AudioFormat, float, int, int, int).
      • getPerfString

        public final String getPerfString()
      • init

        public final boolean init​(AudioFormat requestedFormat,
                                  int frameDuration,
                                  int initialQueueSize,
                                  int queueGrowAmount,
                                  int queueLimit)
        Specified by:
        init in interface AudioSink
      • init

        public final boolean init​(int alChannelLayout,
                                  int alSampleType,
                                  int alFormat,
                                  int sampleRate,
                                  int sampleSize,
                                  int frameDuration,
                                  int initialQueueSize,
                                  int queueGrowAmount,
                                  int queueLimit)
        Initializes the sink using the given OpenAL audio parameter and streaming details.
        Parameters:
        alChannelLayout - OpenAL channel layout
        alSampleType - OpenAL sample type
        alFormat - OpenAL format
        sampleRate - sample rate, e.g. 44100
        sampleSize - sample size in bits, e.g. 16
        frameDuration - average or fixed frame duration in milliseconds helping a caching AudioSink.AudioFrame based implementation to determine the frame count in the queue. See AudioSink.DefaultFrameDuration.
        initialQueueSize - initial time in milliseconds to queue in this sink, see AudioSink.DefaultInitialQueueSize.
        queueGrowAmount - time in milliseconds to grow queue if full, see AudioSink.DefaultQueueGrowAmount.
        queueLimit - maximum time in milliseconds the queue can hold (and grow), see AudioSink.DefaultQueueLimitWithVideo and AudioSink.DefaultQueueLimitAudioOnly.
        Returns:
        true if successful, otherwise false
        See Also:
        ALHelpers.getAudioFormat(int, int, int, int, int), #init(AudioFormat, float, int, int, int)
      • destroy

        public final void destroy()
        Specified by:
        destroy in interface AudioSink
      • isAvailable

        public final boolean isAvailable()
        Specified by:
        isAvailable in interface AudioSink
      • isPlaying

        public final boolean isPlaying()
        Specified by:
        isPlaying in interface AudioSink
      • play

        public final void play()
        Specified by:
        play in interface AudioSink
      • pause

        public final void pause()
        Specified by:
        pause in interface AudioSink
      • setPlaySpeed

        public final boolean setPlaySpeed​(float rate)
        Specified by:
        setPlaySpeed in interface AudioSink
      • getVolume

        public final float getVolume()
        Specified by:
        getVolume in interface AudioSink
      • setVolume

        public final boolean setVolume​(float v)
        Specified by:
        setVolume in interface AudioSink
      • flush

        public final void flush()
        Specified by:
        flush in interface AudioSink
      • getPTS

        public final int getPTS()
        Specified by:
        getPTS in interface AudioSink