AudioPermission (Java SE 9 & JDK 9 )
Keywords: javax.sound.sampled.AudioPermission class

Module java.desktop
Package javax.sound.sampled

## Class AudioPermission

- java.lang.Object
- - java.security.Permission
  - - java.security.BasicPermission
    - - javax.sound.sampled.AudioPermission

- All Implemented Interfaces:
    `Serializable`, `Guard`

      public class AudioPermission
      extends BasicPermission

  The `AudioPermission` class represents access rights to the audio system resources. An `AudioPermission` contains a target name but no actions list; you either have the named permission or you don't.

  The target name is the name of the audio permission (see the table below). The names follow the hierarchical property-naming convention. Also, an asterisk can be used to represent all the audio permissions.

  The following table lists the possible `AudioPermission` target names. For each name, the table provides a description of exactly what that permission allows, as well as a discussion of the risks of granting code the permission.

  Permission target name, what the permission allows, and associated risks
  Permission Target Name | What the Permission Allows | Risks of Allowing this Permission
  --- | --- | ---
  play | Audio playback through the audio device or devices on the system. Allows the application to obtain and manipulate lines and mixers for audio playback (rendering). | In some cases use of this permission may affect other applications because the audio from one line may be mixed with other audio being played on the system, or because manipulation of a mixer affects the audio for all lines using that mixer.
  record | Audio recording through the audio device or devices on the system. Allows the application to obtain and manipulate lines and mixers for audio recording (capture). | In some cases use of this permission may affect other applications because manipulation of a mixer affects the audio for all lines using that mixer. This permission can enable an applet or application to eavesdrop on a user.

  Since:
    1.3
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AudioPermission​(String name)` | Creates a new `AudioPermission` object that has the specified symbolic name, such as "play" or "record".
    `AudioPermission​(String name, String actions)` | Creates a new `AudioPermission` object that has the specified symbolic name, such as "play" or "record".

  - ### Method Summary

    - ### Methods inherited from class java.security.BasicPermission

      `equals, getActions, hashCode, implies, newPermissionCollection`

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

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

    - ### Methods inherited from class java.security.Permission

      `checkGuard, getName, toString`

- - ### Constructor Detail

    - #### AudioPermission

          public AudioPermission​(String name)

      Creates a new `AudioPermission` object that has the specified symbolic name, such as "play" or "record". An asterisk can be used to indicate all audio permissions.
      Parameters:
        `name` - the name of the new `AudioPermission`
      Throws:
        `NullPointerException` - if `name` is `null`
        `IllegalArgumentException` - if `name` is empty

    - #### AudioPermission

          public AudioPermission​(String name,
                                 String actions)

      Creates a new `AudioPermission` object that has the specified symbolic name, such as "play" or "record". The `actions` parameter is currently unused and should be `null`.
      Parameters:
        `name` - the name of the new `AudioPermission`
        `actions` - (unused; should be `null`)
      Throws:
        `NullPointerException` - if `name` is `null`
        `IllegalArgumentException` - if `name` is empty