javax.sound.sampled

## Class AudioFormat.Encoding

- java.lang.Object
- - javax.sound.sampled.AudioFormat.Encoding

- Enclosing class:
    AudioFormat

      public static class AudioFormat.Encoding
      extends Object

  The `Encoding` class names the specific type of data representation used for an audio stream. The encoding includes aspects of the sound format other than the number of channels, sample rate, sample size, frame rate, frame size, and byte order.

  One ubiquitous type of audio encoding is pulse-code modulation (PCM), which is simply a linear (proportional) representation of the sound waveform. With PCM, the number stored in each sample is proportional to the instantaneous amplitude of the sound pressure at that point in time. The numbers may be signed or unsigned integers or floats. Besides PCM, other encodings include mu-law and a-law, which are nonlinear mappings of the sound amplitude that are often used for recording speech.

  You can use a predefined encoding by referring to one of the static objects created by this class, such as PCM_SIGNED or PCM_UNSIGNED. Service providers can create new encodings, such as compressed audio formats, and make these available through the ``AudioSystem`` class.

  The `Encoding` class is static, so that all `AudioFormat` objects that have the same encoding will refer to the same object (rather than different instances of the same class). This allows matches to be made by checking that two format's encodings are equal.

  Since:
    1.3
  See Also:
    `AudioFormat`, `FormatConversionProvider`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static AudioFormat.Encoding` | `ALAW` | Specifies a-law encoded data.
    `static AudioFormat.Encoding` | `PCM_FLOAT` | Specifies floating-point PCM data.
    `static AudioFormat.Encoding` | `PCM_SIGNED` | Specifies signed, linear PCM data.
    `static AudioFormat.Encoding` | `PCM_UNSIGNED` | Specifies unsigned, linear PCM data.
    `static AudioFormat.Encoding` | `ULAW` | Specifies u-law encoded data.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Encoding(String name)` | Constructs a new encoding.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals(Object obj)` | Finalizes the equals method
    `int` | `hashCode()` | Finalizes the hashCode method
    `String` | `toString()` | Provides the `String` representation of the encoding.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### PCM_SIGNED

          public static final AudioFormat.Encoding PCM_SIGNED

      Specifies signed, linear PCM data.

    - #### PCM_UNSIGNED

          public static final AudioFormat.Encoding PCM_UNSIGNED

      Specifies unsigned, linear PCM data.

    - #### PCM_FLOAT

          public static final AudioFormat.Encoding PCM_FLOAT

      Specifies floating-point PCM data.
      Since:
        1.7

    - #### ULAW

          public static final AudioFormat.Encoding ULAW

      Specifies u-law encoded data.

    - #### ALAW

          public static final AudioFormat.Encoding ALAW

      Specifies a-law encoded data.

  - ### Constructor Detail

    - #### Encoding

          public Encoding(String name)

      Constructs a new encoding.
      Parameters:
        `name` - the name of the new type of encoding

  - ### Method Detail

    - #### equals

          public final boolean equals(Object obj)

      Finalizes the equals method
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - the reference object with which to compare.
      Returns:
        `true` if this object is the same as the obj argument; `false` otherwise.
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### hashCode

          public final int hashCode()

      Finalizes the hashCode method
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code value for this object.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### toString

          public final String toString()

      Provides the `String` representation of the encoding. This `String` is the same name that was passed to the constructor. For the predefined encodings, the name is similar to the encoding's variable (field) name. For example, `PCM_SIGNED.toString()` returns the name "pcm_signed".
      Overrides:
        `toString` in class `Object`
      Returns:
        the encoding name

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.