2011-08-26 50 views
0

在我的应用程序中,我有2个视图:在1-st中有一个带有音频文件的tableview。何时触摸单元格AVAudioPlayer开始播放。当我进入第二视图时,AVAudioPlayer继续播放,当我返回到第一视图时继续播放。但从这一刻开始出现问题:当我触摸其他单元格开始播放此曲目和以前,当我再次触摸同时播放3首曲目。所以我的按钮“播放/暂停”在不正确之后起作用。我如何解决这个错误?在每一次的viewDidLoad我创建AVAudioPlayer的新对象和值分配给它一个对象多视图应用程序中AVAudioPlayer的问题

(void)viewDidLoad { 

    [self.traxbax.avAudioPlayer stop]; 

    audioPlayer=self.traxbax.avAudioPlayer; 

    [self.traxbax.avAudioPlayer release]; 

    [audioPlayer play]; 
} 


(void)viewDidLoad 
{ 

    [self.bmvc.audioPlayer stop]; 

    avAudioPlayer=self.bmvc.audioPlayer; 

    [self.bmvc.audioPlayer release]; 

    [avAudioPlayer play]; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
} 

回答

0

这肯定是有些麻烦AVAudioPlayer的释放。您可以尝试释放行后在加:

 
self.bmvc.audioPlayer = nil; 

BTW:没有太多的理解,为什么你有[超级viewDidLoad中]在最后一行。它假设是该方法的第一行。