AudioPlayer
AudioPlayer is used to play audio assets. It provides a single Output pin which can be connected to other pins via Wires.
Code Samples
local audioPlayer : AudioPlayer = Instance.new("AudioPlayer")
audioPlayer.Parent = workspace
audioPlayer.AssetId = "rbxassetid://9112854440"
local deviceOutput = Instance.new("AudioDeviceOutput")
deviceOutput.Parent = workspace
local wire = Instance.new("Wire")
wire.Parent = workspace
wire.SourceInstance = audioPlayer
wire.TargetInstance = deviceOutput
audioPlayer:Play()
Summary
Properties
The asset to be loaded into the AudioPlayer.
Controls whether AssetId loads automatically once assigned.
Denotes whether this AudioPlayer is currently playing.
Denotes whether this AudioPlayer is loaded, buffered, and ready to play.
A range, in seconds, denoting a desired loop start and loop end within the PlaybackRegion of this AudioPlayer.
Controls whether this AudioPlayer loops.
Range in seconds denoting a desired start time (minimum) and stop time (maximum) within the TimeLength.
Controls how quickly the asset will be played, which controls its pitch.
Denotes the length of the loaded asset.
Tracks the current position of the playhead within the asset.
Controls how loudly the asset will be played.
Methods
Returns an array of Wires that are connected to the specified pin.
Plays the AudioPlayer from wherever its TimePosition is.
Stops the AudioPlayer wherever its TimePosition is.
Events
Fires when the AudioPlayer has completed playback and stopped.
Fires when the AudioPlayer loops.
Properties
AssetId
The asset to be loaded into the AudioPlayer. If AutoLoad is true, the asset loads immediately once this property is assigned. When loading is complete, IsReady becomes true.
AutoLoad
Controls whether AssetId loads automatically once assigned. If false, the asset will load upon the first attempt to play.
IsPlaying
Denotes whether this AudioPlayer is currently playing. This property is read-only, but replicates. To play and stop an AudioPlayer at runtime, use the Play() and Stop() methods.
IsReady
Denotes whether this AudioPlayer is loaded, buffered, and ready to play. Although uncommon, AudioPlayers may have their assets unloaded at runtime if there is extreme memory pressure, in which case IsReady will become false.
LoopRegion
A range, in seconds, denoting a desired loop start and loop end within the PlaybackRegion of this AudioPlayer.
If the LoopRegion minimum is greater than the PlaybackRegion minimum, the loop starts from the LoopRegion minimum.
If the LoopRegion minimum is less than the PlaybackRegion minimum, the loop starts from the PlaybackRegion minimum.
If the LoopRegion maximum is greater than the PlaybackRegion maximum, the loop ends at the PlaybackRegion maximum.
If the LoopRegion maximum is less than the PlaybackRegion maximum, the loop ends at exactly the LoopRegion maximum.
If the LoopRegion minimum equals the LoopRegion maximum, the AudioPlayer uses the PlaybackRegion property instead.
Looping
Controls whether this AudioPlayer loops when exceeding the end of its TimeLength, LoopRegion, or PlaybackRegion.
PlaybackRegion
Range in seconds denoting a desired start time (minimum) and stop time (maximum) within the TimeLength.
If the PlaybackRegion minimum is greater than 0, the sound begins playing from the PlaybackRegion minimum time.
If the PlaybackRegion minimum is less than 0, the sound begins playing from 0.
If the PlaybackRegion maximum is greater than the TimeLength, the sound stops at TimeLength.
If the PlaybackRegion maximum is less than the TimeLength, the sound stops at exactly the PlaybackRegion maximum.
If the PlaybackRegion minimum equals the PlaybackRegion maximum, the sound plays in its entirety.
PlaybackSpeed
Multiplier controlling how quickly the asset will be played, directly controlling its perceived pitch. Ranges from 0 to 20.
TimePosition
Tracks and controls the current position of the playhead within the AssetId, in seconds.
Volume
Volume level which is multiplied onto the output audio stream, controlling how loudly the asset will be played. Ranges from 0 to 3.
Methods
GetConnectedWires
Returns an array of Wires that are connected to the specified pin. AudioPlayer has one "Output" pin.
Parameters
Returns
Play
Plays the AudioPlayer from wherever its TimePosition is. Replicates from server to client.
Returns
Stop
Stops the AudioPlayer wherever its TimePosition is. Replicates from server to client.
Returns
Events
Ended
Fires after the AudioPlayer has completed playback and stopped. Note this event will not fire for audio with Looped set to true since it continues playing upon reaching its end. This event will also not fire when the audio is stopped before playback has completed; for this, use AudioPlayer:GetPropertyChangedSignal() on the IsPlaying property.
This event is often used to destroy an AudioPlayer when it has completed playback.
Looped
Event that fires after the AudioPlayer loops. This happens when the audio reaches the end of its content (or the end of the LoopRegion if it is active) and Looping is true.
This event does not fire if the audio is looped manually by changing its TimePosition.