An easy to implement simple swift class working on AVAudioPlayer depicting various features like play, pause and stop.
// creating single instance of class
static let sharedInstance = MyAudioPlayer()
var myAudioPlayer:AVAudioPlayer?
//MARK: Player Key Functions
// checking if playing is running/playing or not
func isRunningAudio()->Bool{
if let audioPlayer = myAudioPlayer{
return audioPlayer.playing
}
return false;
}
// funtion to play audio
func playAudio(audio:String, type:String){
if(myAudioPlayer != nil){
myAudioPlayer?.play()
}
else{
do{
try myAudioPlayer = AVAudioPlayer(contentsOfURL: NSURL(string: NSBundle.mainBundle().pathForResource(audio, ofType: type)!)!)
myAudioPlayer?.delegate = self
myAudioPlayer?.prepareToPlay()
myAudioPlayer?.play()
} catch {
print(error)
}
}
}
// will pause the current playing audio
func pauseAudio(){
myAudioPlayer?.pause()
}
// will stop the player
func stopAudio(){
if let audioPlayer = myAudioPlayer{
audioPlayer.stop()
myAudioPlayer = nil
}
}
//MARK: Player Delegate
// delegate method, will be called when audioplayer is finished playing audio
func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool){
if(flag){
myAudioPlayer = nil
}
}
// delegate method, will be called when audioplayer encounters any interruption(like call) while playing audio
func audioPlayerBeginInterruption(player: AVAudioPlayer){
myAudioPlayer?.pause()
}
// delegate method, will be called when interruption ends.
func audioPlayerEndInterruption(player: AVAudioPlayer, withOptions flags: Int){
myAudioPlayer?.play()
}
0 Comment(s)