Class AudioFileWriter

  • Direct Known Subclasses:
    OggSpeexWriter, PcmWaveWriter, RawWriter

    public abstract class AudioFileWriter
    extends java.lang.Object
    Abstract Class that defines an Audio File Writer.
    Version:
    $Revision: 1.2 $
    Author:
    Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
    • Constructor Summary

      Constructors 
      Constructor Description
      AudioFileWriter()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static byte[] buildOggPageHeader​(int headerType, long granulepos, int streamSerialNumber, int pageCount, int packetCount, byte[] packetSizes)
      Builds and returns an Ogg Page Header.
      static byte[] buildSpeexComment​(java.lang.String comment)
      Builds and returns a Speex Comment.
      static byte[] buildSpeexHeader​(int sampleRate, int mode, int channels, boolean vbr, int nframes)
      Builds a Speex Header.
      abstract void close()
      Closes the output file.
      abstract void open​(java.io.File file)
      Open the output file.
      abstract void open​(java.lang.String filename)
      Open the output file.
      abstract void writeHeader​(java.lang.String comment)
      Writes the header pages that start the Ogg Speex file.
      static void writeInt​(byte[] data, int offset, int v)
      Writes a Little-endian int.
      static void writeInt​(java.io.DataOutput out, int v)
      Writes a Little-endian int.
      static void writeInt​(java.io.OutputStream os, int v)
      Writes a Little-endian int.
      static void writeLong​(byte[] data, int offset, long v)
      Writes a Little-endian long.
      static void writeLong​(java.io.OutputStream os, long v)
      Writes a Little-endian long.
      static int writeOggPageHeader​(byte[] buf, int offset, int headerType, long granulepos, int streamSerialNumber, int pageCount, int packetCount, byte[] packetSizes)
      Writes an Ogg Page Header to the given byte array.
      abstract void writePacket​(byte[] data, int offset, int len)
      Writes a packet of audio.
      static void writeShort​(byte[] data, int offset, int v)
      Writes a Little-endian short.
      static void writeShort​(java.io.DataOutput out, short v)
      Writes a Little-endian short.
      static void writeShort​(java.io.OutputStream os, short v)
      Writes a Little-endian short.
      static int writeSpeexComment​(byte[] buf, int offset, java.lang.String comment)
      Writes a Speex Comment to the given byte array.
      static int writeSpeexHeader​(byte[] buf, int offset, int sampleRate, int mode, int channels, boolean vbr, int nframes)
      Writes a Speex Header to the given byte array.
      static void writeString​(byte[] data, int offset, java.lang.String v)
      Writes a String.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AudioFileWriter

        public AudioFileWriter()
    • Method Detail

      • close

        public abstract void close()
                            throws java.io.IOException
        Closes the output file.
        Throws:
        java.io.IOException - if there was an exception closing the Audio Writer.
      • open

        public abstract void open​(java.io.File file)
                           throws java.io.IOException
        Open the output file.
        Parameters:
        file - - file to open.
        Throws:
        java.io.IOException - if there was an exception opening the Audio Writer.
      • open

        public abstract void open​(java.lang.String filename)
                           throws java.io.IOException
        Open the output file.
        Parameters:
        filename - - file to open.
        Throws:
        java.io.IOException - if there was an exception opening the Audio Writer.
      • writeHeader

        public abstract void writeHeader​(java.lang.String comment)
                                  throws java.io.IOException
        Writes the header pages that start the Ogg Speex file. Prepares file for data to be written.
        Parameters:
        comment - description to be included in the header.
        Throws:
        java.io.IOException
      • writePacket

        public abstract void writePacket​(byte[] data,
                                         int offset,
                                         int len)
                                  throws java.io.IOException
        Writes a packet of audio.
        Parameters:
        data - audio data
        offset - the offset from which to start reading the data.
        len - the length of data to read.
        Throws:
        java.io.IOException
      • writeOggPageHeader

        public static int writeOggPageHeader​(byte[] buf,
                                             int offset,
                                             int headerType,
                                             long granulepos,
                                             int streamSerialNumber,
                                             int pageCount,
                                             int packetCount,
                                             byte[] packetSizes)
        Writes an Ogg Page Header to the given byte array.
        Parameters:
        buf - the buffer to write to.
        offset - the from which to start writing.
        headerType - the header type flag (0=normal, 2=bos: beginning of stream, 4=eos: end of stream).
        granulepos - the absolute granule position.
        streamSerialNumber -
        pageCount -
        packetCount -
        packetSizes -
        Returns:
        the amount of data written to the buffer.
      • buildOggPageHeader

        public static byte[] buildOggPageHeader​(int headerType,
                                                long granulepos,
                                                int streamSerialNumber,
                                                int pageCount,
                                                int packetCount,
                                                byte[] packetSizes)
        Builds and returns an Ogg Page Header.
        Parameters:
        headerType - the header type flag (0=normal, 2=bos: beginning of stream, 4=eos: end of stream).
        granulepos - the absolute granule position.
        streamSerialNumber -
        pageCount -
        packetCount -
        packetSizes -
        Returns:
        an Ogg Page Header.
      • writeSpeexHeader

        public static int writeSpeexHeader​(byte[] buf,
                                           int offset,
                                           int sampleRate,
                                           int mode,
                                           int channels,
                                           boolean vbr,
                                           int nframes)
        Writes a Speex Header to the given byte array.
        Parameters:
        buf - the buffer to write to.
        offset - the from which to start writing.
        sampleRate -
        mode -
        channels -
        vbr -
        nframes -
        Returns:
        the amount of data written to the buffer.
      • buildSpeexHeader

        public static byte[] buildSpeexHeader​(int sampleRate,
                                              int mode,
                                              int channels,
                                              boolean vbr,
                                              int nframes)
        Builds a Speex Header.
        Parameters:
        sampleRate -
        mode -
        channels -
        vbr -
        nframes -
        Returns:
        a Speex Header.
      • writeSpeexComment

        public static int writeSpeexComment​(byte[] buf,
                                            int offset,
                                            java.lang.String comment)
        Writes a Speex Comment to the given byte array.
        Parameters:
        buf - the buffer to write to.
        offset - the from which to start writing.
        comment - the comment.
        Returns:
        the amount of data written to the buffer.
      • buildSpeexComment

        public static byte[] buildSpeexComment​(java.lang.String comment)
        Builds and returns a Speex Comment.
        Parameters:
        comment - the comment.
        Returns:
        a Speex Comment.
      • writeShort

        public static void writeShort​(java.io.DataOutput out,
                                      short v)
                               throws java.io.IOException
        Writes a Little-endian short.
        Parameters:
        out - the data output to write to.
        v - value to write.
        Throws:
        java.io.IOException
      • writeInt

        public static void writeInt​(java.io.DataOutput out,
                                    int v)
                             throws java.io.IOException
        Writes a Little-endian int.
        Parameters:
        out - the data output to write to.
        v - value to write.
        Throws:
        java.io.IOException
      • writeShort

        public static void writeShort​(java.io.OutputStream os,
                                      short v)
                               throws java.io.IOException
        Writes a Little-endian short.
        Parameters:
        os - - the output stream to write to.
        v - - the value to write.
        Throws:
        java.io.IOException
      • writeInt

        public static void writeInt​(java.io.OutputStream os,
                                    int v)
                             throws java.io.IOException
        Writes a Little-endian int.
        Parameters:
        os - - the output stream to write to.
        v - - the value to write.
        Throws:
        java.io.IOException
      • writeLong

        public static void writeLong​(java.io.OutputStream os,
                                     long v)
                              throws java.io.IOException
        Writes a Little-endian long.
        Parameters:
        os - - the output stream to write to.
        v - - the value to write.
        Throws:
        java.io.IOException
      • writeShort

        public static void writeShort​(byte[] data,
                                      int offset,
                                      int v)
        Writes a Little-endian short.
        Parameters:
        data - the array into which the data should be written.
        offset - the offset from which to start writing in the array.
        v - the value to write.
      • writeInt

        public static void writeInt​(byte[] data,
                                    int offset,
                                    int v)
        Writes a Little-endian int.
        Parameters:
        data - the array into which the data should be written.
        offset - the offset from which to start writing in the array.
        v - the value to write.
      • writeLong

        public static void writeLong​(byte[] data,
                                     int offset,
                                     long v)
        Writes a Little-endian long.
        Parameters:
        data - the array into which the data should be written.
        offset - the offset from which to start writing in the array.
        v - the value to write.
      • writeString

        public static void writeString​(byte[] data,
                                       int offset,
                                       java.lang.String v)
        Writes a String.
        Parameters:
        data - the array into which the data should be written.
        offset - the offset from which to start writing in the array.
        v - the value to write.