Amsheer
Amsheer

Reputation: 7131

Audio Start Delay For The First Time - ios Swift

I am creating an application with five buttons. When I click on each button each audio will play. It is working. Now my problem is when I click first button audio play with 1 second delay(App stuck for 1 second) and play. Next time clicks a button audio play without any delay. What could be the issue here?

I am using the following code to play an audio

var currentAudio = try? AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample_audio", ofType: "mp3")!));
 currentAudio!.stop()
currentAudio!.currentTime = 0
 currentAudio!.play();

Please someone help me to finds this issue.

Upvotes: 1

Views: 1257

Answers (1)

Eric Aya
Eric Aya

Reputation: 70098

You could use AVAudioPlayer's .prepareToPlay() method to preload the player's buffers, it will increase AVAudioPlayer's performance (faster start).

The idea is to prepare the player some time before actually playing it:

currentAudio?.prepareToPlay()

then later, in your play function, it will start immediately:

currentAudio?.play()

Upvotes: 2

Related Questions