how to use single instance of AVAudioPlayer for playing multiple songs?
I want to play multiple songs with single object of AVAudioplayer, I put songs in table row , when user tap on row player view is open but when user go back in other row in table player play both songs simanteniosly . what I Can do to fix this?
I assume that you have created the object in the h file, and have property declared and synthesized it. Also you might be playing the file from didSelectRowAtIndexPath: method. In that method you might have the following section of code.
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: nil]; self.appSoundPlayer = newPlayer; [newPlayer release]; [appSoundPlayer prepareToPlay]; [appSoundPlayer setVolume: 1.0]; [appSoundPlayer setDelegate: self]; [appSoundPlayer play];
Before [appSoundPlayer prepareToPlay]; add [appsoundPlayer stop]; just to ensure that the audioplayer is in stop state before starting the playing session.
If you are following a different method, just post the relevant part of the code here,
An AVAudioPlayer is meant to play a single audio clip. If you want to play a different clip, stop the current player, make a new one with the new audio data, and play it.
If two songs are overlapping then you're probably accidentally making two AVAudioPlayer instances and failing to stop the first one.