I have multiple
In my opinion a singleton with only 1 AVPlayer solve this issue well. This way you guarantee that to play another song you have to stop the previous. Then, in that AVPLayerSingleton you have a private property called avPlayer. You can define two methods:
-(void) createPlayerWithSong: (NSString *) currentSong; -(void) destroyPlayer
Then, in your createPlayerWithSong you can check if avPlayer is already created and destroy it and create a new one for each new song.