2011-02-18 147 views
0

大家好,希望大家能夠幫助我解決這個問題。玩AVAudioPlayer後停止音頻

我想要做的是當用戶離開視圖B查看A,音頻播放,當用戶離開視圖A查看B時,音頻停止。

因此,當用戶離開視圖B(從超級視圖移除viewB)回到視圖A的主視圖時,方法playIT & haha​​Play將被調用。當用戶離開視圖A到視圖B(視圖A添加子視圖B)時,將調用stopPlaying方法。但這是我的問題,即使調用stopPlaying方法,音頻也不會停止。我意識到警報顯示,但由於某種原因,>[audioPlayer stop];聲明不起作用。

我已經在頭文件中定義了音頻播放器,只是fyi。

以下所有方法都在名爲soundView的viewcontroller中。

對不起,我可能在做錯整個事情,也許你們中的一些人可以啓發我,糾正我的錯誤?

-(void)playIT{ 

    filePath = [[NSBundle mainBundle] pathForResource:@"6431" 
               ofType:@"aiff"]; 
    fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; 
    audioPlayer = [[AVAudioPlayer alloc] 
        initWithContentsOfURL:fileURL error:nil]; 
} 

-(void)hahaPlay{ 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"playing" message:@" playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
    [audioPlayer prepareToPlay]; 
    if(![audioPlayer isPlaying]){ 

     [audioPlayer play]; 
    } 

- (void)stopPlaying{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Stop playing" message:@"Stop playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 

    [audioPlayer stop]; 

} 

回答

0

也許你錯的地方失去了參考,可以嘗試設置斷點停止呼叫附近,正好在該audioPlayernil情況檢查audioPlayer。只是說因爲通常這是造成這些類型問題的原因......

還會有以下工作嗎?

[audioPlayer pause] 
audioPlayer.currentTime = 0;