# AudioPlayer

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Memory category: Internal
- HTML page: https://rapi.sleaze.dev/classes/AudioPlayer/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/AudioPlayer

Used to play audio assets.

## Properties

### Asset

```luau
AudioPlayer.Asset: string = ""
```

- Tags: Read capabilities: Audio

The asset to be loaded into the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### AudioContent

```luau
AudioPlayer.AudioContent: Content
```

- Tags: Read capabilities: Audio

The audio content to be loaded into the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### AutoLoad

```luau
AudioPlayer.AutoLoad: boolean = true
```

- Tags: Read capabilities: Audio

Controls whether [`Asset`](https://rapi.sleaze.dev/classes/AudioPlayer.md) loads automatically once assigned.

### IsReady

```luau
AudioPlayer.IsReady: boolean = false
```

- Tags: Read only, Read capabilities: Audio, Save only

Denotes whether this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) is loaded, buffered, and ready to play.

### TimeLength

```luau
AudioPlayer.TimeLength: number = 0
```

- Tags: Read only, Read capabilities: Audio, Save only

Denotes the length of the loaded asset.

### AssetId

```luau
AudioPlayer.AssetId: string = ""
```

- Tags: Deprecated, Hidden, Not replicated, Read capabilities: Audio, Load only
- Use instead: [`AudioPlayer.Asset`](https://rapi.sleaze.dev/classes/AudioPlayer.md)

**Deprecated:** This property is deprecated; use [`Asset`](https://rapi.sleaze.dev/classes/AudioPlayer.md) instead.

The asset to be loaded into the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### AssetRepresentation

```luau
AudioPlayer.AssetRepresentation: Enum.AssetRepresentation = Enum.AssetRepresentation.FullLength
```

- Tags: Hidden, Not replicated, Roblox script security, Read capabilities: Audio

### AutoPlay

```luau
AudioPlayer.AutoPlay: boolean = false
```

- Tags: Read capabilities: Audio

Denotes whether this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) starts playing as soon as it spawns in for the first time.

### IsPlaying

```luau
AudioPlayer.IsPlaying: boolean = false
```

- Tags: Write: Roblox engine security, Read capabilities: Audio

Denotes whether this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) is currently playing or planning to play.

### Looping

```luau
AudioPlayer.Looping: boolean = false
```

- Tags: Read capabilities: Audio

Controls whether this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) loops.

### PlaybackSpeed

```luau
AudioPlayer.PlaybackSpeed: number = 1
```

- Tags: Read capabilities: Audio

Controls how quickly the asset will be played, which controls its pitch.

### TimePosition

```luau
AudioPlayer.TimePosition: number = 0
```

- Tags: Read capabilities: Audio

Tracks the current position of the playhead within the asset.

### LoopRegion

```luau
AudioPlayer.LoopRegion: NumberRange = NumberRange.new(0, 60000)
```

- Tags: Read capabilities: Audio

A range, in seconds, denoting a desired loop start and loop end within the [`PlaybackRegion`](https://rapi.sleaze.dev/classes/AudioPlayer.md) of this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### PlaybackRegion

```luau
AudioPlayer.PlaybackRegion: NumberRange = NumberRange.new(0, 60000)
```

- Tags: Read capabilities: Audio

Range in seconds denoting a desired start time (minimum) and stop time (maximum) within the [`TimeLength`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### Volume

```luau
AudioPlayer.Volume: number = 1
```

- Tags: Read capabilities: Audio

Controls how loudly the asset will be played.

## Methods

### Cancel

```luau
AudioPlayer:Cancel(actionId: number?): boolean
```

- Tags: Capabilities: Audio

Attempts to cancel a pre-planned future [`Play`](https://rapi.sleaze.dev/classes/AudioPlayer.md) or [`Stop`](https://rapi.sleaze.dev/classes/AudioPlayer.md) command.

Parameters:

- `actionId`: The unique-ID of a pre-planned [`Play`](https://rapi.sleaze.dev/classes/AudioPlayer.md) or [`Stop`](https://rapi.sleaze.dev/classes/AudioPlayer.md) command.

Returns: Whether the cancellation was successful. Returns false if the action has already occurred, or otherwise does not exist.

### GetConnectedWires

```luau
AudioPlayer:GetConnectedWires(pin: string): { Instance }
```

- Tags: Capabilities: Audio

Returns an array of `Wires` that are connected to the specified pin.

Parameters:

- `pin`: An input or output pin on this instance

Returns: An array of `Wires`

### GetInputPins

```luau
AudioPlayer:GetInputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.TargetName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.TargetInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetOutputPins

```luau
AudioPlayer:GetOutputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.SourceName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.SourceInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetPlaybackState

```luau
AudioPlayer:GetPlaybackState(): string
```

- Tags: Roblox script security, Capabilities: Audio

### GetWaveformAsync

```luau
AudioPlayer:GetWaveformAsync(timeRange: NumberRange, samples: number): { any }
```

- Tags: Yields, Capabilities: Audio

Returns a sampling of the waveform data for the loaded [`Asset`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

Parameters:

- `timeRange`: The start and end time (in seconds) of the segment to read.
- `samples`: The number of samples to return for the specified range.

Returns: A table of `samples` numbers ranging between -1 and 1 representing the sampled waveform, or an empty table if a waveform could not be read.

### Play

```luau
AudioPlayer:Play(atTime: number?): number?
```

- Tags: Capabilities: Audio

Plays the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) from wherever its [`TimePosition`](https://rapi.sleaze.dev/classes/AudioPlayer.md) is.

Parameters:

- `atTime`: A specific time, based on `GetMixerTime`, that this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) should begin playing at.

Returns: If `atTime` was provided, a unique ID, which can be passed to [`Cancel()`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

### Stop

```luau
AudioPlayer:Stop(atTime: number?): number?
```

- Tags: Capabilities: Audio

Stops the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) wherever its [`TimePosition`](https://rapi.sleaze.dev/classes/AudioPlayer.md) is.

Parameters:

- `atTime`: A specific time, based on `GetMixerTime`, that this [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) should stop playing at.

Returns: If `atTime` was provided, a unique ID, which can be passed to [`Cancel()`](https://rapi.sleaze.dev/classes/AudioPlayer.md).

## Events

### Ended

```luau
AudioPlayer.Ended: RBXScriptSignal<()>
```

- Tags: Capabilities: Audio

Fires when the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) has completed playback and stopped.

### Looped

```luau
AudioPlayer.Looped: RBXScriptSignal<()>
```

- Tags: Capabilities: Audio

Fires when the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) loops.

### WiringChanged

```luau
AudioPlayer.WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance)>
```

- Tags: Capabilities: Audio

Fires when another instance is connected to or disconnected from the [`AudioPlayer`](https://rapi.sleaze.dev/classes/AudioPlayer.md) via a [`Wire`](https://rapi.sleaze.dev/classes/Wire.md).

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
