javax.sound.sampled

## Class Port.Info

- java.lang.Object
- - javax.sound.sampled.Line.Info
  - - javax.sound.sampled.Port.Info

- Enclosing interface:
    Port

      public static class Port.Info
      extends Line.Info

  The `Port.Info` class extends ``Line.Info`` with additional information specific to ports, including the port's name and whether it is a source or a target for its mixer. By definition, a port acts as either a source or a target to its mixer, but not both. (Audio input ports are sources; audio output ports are targets.)

  To learn what ports are available, you can retrieve port info objects through the ``getSourceLineInfo`` and ``getTargetLineInfo`` methods of the `Mixer` interface. Instances of the `Port.Info` class may also be constructed and used to obtain lines matching the parameters specified in the `Port.Info` object.

  Since:
    1.3

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Port.Info` | `COMPACT_DISC` | A type of port that gets audio from a CD-ROM drive.
    `static Port.Info` | `HEADPHONE` | A type of port that sends audio to a headphone jack.
    `static Port.Info` | `LINE_IN` | A type of port that gets audio from a line-level audio input jack.
    `static Port.Info` | `LINE_OUT` | A type of port that sends audio to a line-level audio output jack.
    `static Port.Info` | `MICROPHONE` | A type of port that gets audio from a built-in microphone or a microphone jack.
    `static Port.Info` | `SPEAKER` | A type of port that sends audio to a built-in speaker or a speaker jack.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Info(Class<?> lineClass, String name, boolean isSource)` | Constructs a port's info object from the information given.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals(Object obj)` | Finalizes the equals method
    `String` | `getName()` | Obtains the name of the port.
    `int` | `hashCode()` | Finalizes the hashCode method
    `boolean` | `isSource()` | Indicates whether the port is a source or a target for its mixer.
    `boolean` | `matches(Line.Info info)` | Indicates whether this info object specified matches this one.
    `String` | `toString()` | Provides a `String` representation of the port.

    - ### Methods inherited from class javax.sound.sampled.Line.Info

      `getLineClass`

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

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

- - ### Field Detail

    - #### MICROPHONE

          public static final Port.Info MICROPHONE

      A type of port that gets audio from a built-in microphone or a microphone jack.

    - #### LINE_IN

          public static final Port.Info LINE_IN

      A type of port that gets audio from a line-level audio input jack.

    - #### COMPACT_DISC

          public static final Port.Info COMPACT_DISC

      A type of port that gets audio from a CD-ROM drive.

    - #### SPEAKER

          public static final Port.Info SPEAKER

      A type of port that sends audio to a built-in speaker or a speaker jack.

    - #### HEADPHONE

          public static final Port.Info HEADPHONE

      A type of port that sends audio to a headphone jack.

    - #### LINE_OUT

          public static final Port.Info LINE_OUT

      A type of port that sends audio to a line-level audio output jack.

  - ### Constructor Detail

    - #### Info

          public Info(Class<?> lineClass,
                      String name,
                      boolean isSource)

      Constructs a port's info object from the information given. This constructor is typically used by an implementation of Java Sound to describe a supported line.
      Parameters:
        `lineClass` - the class of the port described by the info object.
        `name` - the string that names the port
        `isSource` - `true` if the port is a source port (such as a microphone), `false` if the port is a target port (such as a speaker).

  - ### Method Detail

    - #### getName

          public String getName()

      Obtains the name of the port.
      Returns:
        the string that names the port

    - #### isSource

          public boolean isSource()

      Indicates whether the port is a source or a target for its mixer.
      Returns:
        `true` if the port is a source port (such as a microphone), `false` if the port is a target port (such as a speaker).

    - #### matches

          public boolean matches(Line.Info info)

      Indicates whether this info object specified matches this one. To match, the match requirements of the superclass must be met and the types must be equal.
      Overrides:
        `matches` in class `Line.Info`
      Parameters:
        `info` - the info object for which the match is queried
      Returns:
        `true` if the specified object matches this one, `false` otherwise

    - #### 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 a `String` representation of the port.
      Overrides:
        `toString` in class `Line.Info`
      Returns:
        a string that describes the port

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.