---
title: AVAudioPlayer
framework: avfaudio
role: symbol
role_heading: Class
path: avfaudio/avaudioplayer
---

# AVAudioPlayer

An object that plays audio data from a file or buffer.

## Declaration

```swift
class AVAudioPlayer
```

## Mentioned in

Routing audio to specific devices in multidevice sessions

## Overview

Overview Use an audio player to: Play audio of any duration from a file or buffer Control the volume, panning, rate, and looping behavior of the played audio Access playback-level metering data Play multiple sounds simultaneously by synchronizing the playback of multiple players For more information about preparing your app to play audio, see Configuring your app for media playback. important: For more advanced playback capabilities, like playing streaming or positional audio, use AVAudioEngine instead.

## Topics

### Creating an audio player

- [init(contentsOf:)](avfaudio/avaudioplayer/init(contentsof:).md)
- [init(contentsOf:fileTypeHint:)](avfaudio/avaudioplayer/init(contentsof:filetypehint:).md)
- [init(data:)](avfaudio/avaudioplayer/init(data:).md)
- [init(data:fileTypeHint:)](avfaudio/avaudioplayer/init(data:filetypehint:).md)

### Controlling playback

- [prepareToPlay()](avfaudio/avaudioplayer/preparetoplay().md)
- [play()](avfaudio/avaudioplayer/play().md)
- [play(atTime:)](avfaudio/avaudioplayer/play(attime:).md)
- [pause()](avfaudio/avaudioplayer/pause().md)
- [stop()](avfaudio/avaudioplayer/stop().md)
- [isPlaying](avfaudio/avaudioplayer/isplaying.md)

### Configuring playback settings

- [volume](avfaudio/avaudioplayer/volume.md)
- [setVolume(_:fadeDuration:)](avfaudio/avaudioplayer/setvolume(_:fadeduration:).md)
- [pan](avfaudio/avaudioplayer/pan.md)
- [enableRate](avfaudio/avaudioplayer/enablerate.md)
- [rate](avfaudio/avaudioplayer/rate.md)
- [numberOfLoops](avfaudio/avaudioplayer/numberofloops.md)

### Accessing player timing

- [currentTime](avfaudio/avaudioplayer/currenttime.md)
- [duration](avfaudio/avaudioplayer/duration.md)

### Configuring the Spatial Audio experience

- [intendedSpatialExperience](avfaudio/avaudioplayer/intendedspatialexperience-27klj.md)

### Managing audio channels

- [numberOfChannels](avfaudio/avaudioplayer/numberofchannels.md)
- [channelAssignments](avfaudio/avaudioplayer/channelassignments.md)

### Managing audio-level metering

- [isMeteringEnabled](avfaudio/avaudioplayer/ismeteringenabled.md)
- [updateMeters()](avfaudio/avaudioplayer/updatemeters().md)
- [averagePower(forChannel:)](avfaudio/avaudioplayer/averagepower(forchannel:).md)
- [peakPower(forChannel:)](avfaudio/avaudioplayer/peakpower(forchannel:).md)

### Responding to player events

- [delegate](avfaudio/avaudioplayer/delegate.md)
- [AVAudioPlayerDelegate](avfaudio/avaudioplayerdelegate.md)

### Inspecting the audio data

- [url](avfaudio/avaudioplayer/url.md)
- [data](avfaudio/avaudioplayer/data.md)
- [format](avfaudio/avaudioplayer/format.md)
- [settings](avfaudio/avaudioplayer/settings.md)

### Accessing device information

- [currentDevice](avfaudio/avaudioplayer/currentdevice.md)
- [deviceCurrentTime](avfaudio/avaudioplayer/devicecurrenttime.md)

### Initializers

- [init(contentsOfURL:)](avfaudio/avaudioplayer/init(contentsofurl:).md)
- [init(contentsOfURL:fileTypeHint:)](avfaudio/avaudioplayer/init(contentsofurl:filetypehint:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Basic playback and recording

- [AVAudioRecorder](avfaudio/avaudiorecorder.md)
- [AVMIDIPlayer](avfaudio/avmidiplayer.md)
