如何让avaudioplayer在点击newsong时停止播放上一首歌?

时间:2011-03-08 09:17:36

标签: iphone objective-c audio avaudioplayer

我用按钮歌创建了一个视图。

  • 当我们点击按钮时,它会转到包含列表的表 歌曲。
  • 当我们选择一首歌曲时,它会转到另一个视图并播放该歌曲。
  • 每当歌曲播放时,我们都可以返回主视图或者播放 歌曲将在背景中播放的歌曲表格很好 这里。

但是每当我尝试从歌曲表中播放另一首歌曲时,前一首歌曲都不会停止,并且它会继续与所选歌曲一起播放。

我的目标是在切换到不同视图时播放歌曲。我已经完成了这个,但我想要的是每当我从歌曲表中选择另一首歌时,它必须停止上一首歌并播放所选歌曲。

请解决此问题。

1 个答案:

答案 0 :(得分:0)

您必须停止avaudioplayer并在释放现有实例后重新创建实例。

- (IBAction)buttonClicked 
{
 if([audioPlayer isPlaying])
 {
  [audioPlayer stop];
  [audioPlayer release];
  audioPlayer = nil;
  audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfUrl:songUrl];
  [audioPlayer play];
}
// Do something like change view etc.
}

如果您从表格视图中进行选择,请将其放入UITableView delegate didSelectRowAtIndexPath