Instance Method


Plays a sound asynchronously, starting at a specified point in the audio output device’s timeline.


func play(atTime time: TimeInterval) -> Bool



The absolute audio output device time to begin playback. The value that you provide to the time parameter must be greater than the device’s current time. You can delay the start of playback by using code like this:

NSTimeInterval playbackDelay = 3.0;              // must be ≥ 0
[myAudioPlayer playAtTime: myAudioPlayer.deviceCurrentTime + playbackDelay];

Return Value

true on success, or false on failure.


Use this method to precisely synchronize the playback of two or more AVAudioPlayer objects. This code snippet shows the recommended way to do this:

// Before calling this method, instantiate two AVAudioPlayer objects and
// assign each of them a sound.
- (void) startSynchronizedPlayback {
    NSTimeInterval shortStartDelay = 0.01;            // seconds
    NSTimeInterval now = player.deviceCurrentTime;
    [player       playAtTime: now + shortStartDelay];
    [secondPlayer playAtTime: now + shortStartDelay];
    // Here, update state and user interface for each player, as appropriate

To learn about the virtual audio output device’s timeline, read the description for the deviceCurrentTime property.

Calling this method implicitly calls the prepareToPlay() method if the audio player is not already prepared to play.

See Also

Configuring and Controlling Playback

func play() -> Bool

Plays a sound asynchronously.

func pause()

Pauses playback; sound remains ready to resume playback from where it left off.

func stop()

Stops playback and undoes the setup needed for playback.

func prepareToPlay() -> Bool

Prepares the audio player for playback by preloading its buffers.

func setVolume(Float, fadeDuration: TimeInterval)

Fades to a new volume over a specific duration.

var isPlaying: Bool

A Boolean value that indicates whether the audio player is playing (true) or not (false).

var volume: Float

The playback volume for the audio player, ranging from 0.0 through 1.0 on a linear scale.

var pan: Float

The audio player’s stereo pan position.

var rate: Float

The audio player’s playback rate.

var enableRate: Bool

A Boolean value that specifies whether playback rate adjustment is enabled for an audio player.

var numberOfLoops: Int

The number of times a sound will return to the beginning, upon reaching the end, to repeat playback.

var delegate: AVAudioPlayerDelegate?

The delegate object for the audio player.

protocol AVAudioPlayerDelegate

A protocol that allows a delegate to respond to audio interruptions and audio decoding errors, and to the completion of a sound’s playback.

var settings: [String : Any]

The audio player’s settings dictionary, containing information about the sound associated with the player.