Class Mp3InputStream

java.lang.Object
de.pottgames.tuningfork.decoder.Mp3InputStream
All Implemented Interfaces:
AudioStream, Closeable, AutoCloseable

public class Mp3InputStream extends Object implements AudioStream
An AudioStream that decodes mp3. TuningFork doesn't officially support the mp3 file format, use at your own risk. This implementation is as open as it can be, you should be able to extend it easily and make changes and improvements to your needs.
  • Field Details

    • bitstream

      protected javazoom.jl.decoder.Bitstream bitstream
    • outputBuffer

      protected javazoom.jl.decoder.OutputBuffer outputBuffer
    • decoder

      protected javazoom.jl.decoder.MP3Decoder decoder
    • channels

      protected int channels
    • sampleRate

      protected int sampleRate
    • file

      protected com.badlogic.gdx.files.FileHandle file
    • duration

      protected float duration
    • closed

      protected boolean closed
  • Constructor Details

    • Mp3InputStream

      public Mp3InputStream(com.badlogic.gdx.files.FileHandle file)
  • Method Details

    • init

      protected void init(com.badlogic.gdx.files.FileHandle file)
    • read

      public int read(byte[] bytes)
      Description copied from interface: AudioStream
      Reads bytes from the stream until the given array is full or the stream ends. Returns the number of bytes that were actually read.
      Specified by:
      read in interface AudioStream
      Parameters:
      bytes - the byte array to store the bytes in
      Returns:
      number of bytes read or -1 if there are no bytes left
    • getDuration

      public float getDuration()
      Description copied from interface: AudioStream
      Returns the duration in seconds or -1 if this information is not available.
      Specified by:
      getDuration in interface AudioStream
      Returns:
      duration in seconds or -1 if the information is not available
    • reset

      public AudioStream reset()
      Description copied from interface: AudioStream
      Resets the audio stream as if it was re-opened. Implementations are free to close themselves and provide a new AudioStream. The AudioStream returned by this function will be used, regardless of whether it is a new instance or the old one.
      Specified by:
      reset in interface AudioStream
      Returns:
      an AudioStream
    • getChannels

      public int getChannels()
      Description copied from interface: AudioStream
      Returns the number of audio channels.
      Specified by:
      getChannels in interface AudioStream
      Returns:
      number of channels
    • getSampleRate

      public int getSampleRate()
      Description copied from interface: AudioStream
      Returns the sample rate.
      Specified by:
      getSampleRate in interface AudioStream
      Returns:
      the sample rate
    • getBitsPerSample

      public int getBitsPerSample()
      Description copied from interface: AudioStream
      Returns the number of bits per sample, also known as the sample depth.
      Specified by:
      getBitsPerSample in interface AudioStream
      Returns:
      the number of bits per sample
    • getPcmDataType

      public PcmFormat.PcmDataType getPcmDataType()
      Description copied from interface: AudioStream
      Returns the output data format of this AudioStream.
      Specified by:
      getPcmDataType in interface AudioStream
      Returns:
      the pcm data type
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • isClosed

      public boolean isClosed()
      Description copied from interface: AudioStream
      Returns true if the AudioStream is closed.
      Specified by:
      isClosed in interface AudioStream
      Returns:
      true if closed, false if open