2011-09-13 79 views
0

在我的音板應用程序中,一段時間後聲音將停止工作,直到應用程序關閉並再次打開。無法弄清楚什麼是錯的!這裏是我的代碼:聲音在音板(Xcode)中停止工作

在.h文件:

(imported files here) 

@interface MainView : UIView { 

} 
- (IBAction)pushButton2:(id)sender; 

@end 

在.m文件:

(imported files here) 


@implementation MainView 

- (IBAction)pushButton2:(id)sender { 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"mp3"]; 
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    theAudio.delegate = self; 
    [theAudio play]; 

} 

@end 
+0

這將有助於查看委託方法。在mp3結束之前聲音是否停止? –

+0

不可以。一段時間後,聲音將停止播放。 – McCadi

+0

儘管如此,代表方法會有所幫助。 –

回答

1

我不知道它會導致你看到的行爲,但每次按下按鈕時肯定會漏掉AVAudioPlayer。此外,我只會加載一次(例如,在viewDidLoad),而不是每個按鈕按下。也許像這樣:

@interface MainView : UIView 
{ 
    AVAudioPlayer* audioPlayer; 
} 
- (IBAction)pushButton2:(id)sender; 
@end 

@implementation MainView 

- (void) viewDidLoad 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"mp3"]; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    audioPlayer.delegate = self; 

} 

- (void) viewDidUnload 
{ 
    [audioPlayer release], audioPlayer = nil; 
} 

- (IBAction)pushButton2:(id)sender 
{ 
    [audioPlayer play]; 
} 

@end 
+0

謝謝!如果我添加了另一個聲音,它會是什麼樣子? – McCadi

+0

每個聲音只能有一個AVAudioPlayer實例。 – zpasternack

+0

我無法讓所有的聲音停下來。我只是製作了所有不同的音頻播放器,並在停止行動中讓所有這些都停止了。爲我工作! – msweet168