2012-01-01 130 views
-1

UIToolbarUIBarButtonItems播放,暫停和停止按鈕。播放和停止按鈕工作正常,但暫停按鈕正在停止音頻播放器,而不是暫停音頻播放器。它應該暫停音頻文件並恢復音頻文件。暫停按鈕停止AVAudioPlayer而不是暫停

看看我下面的代碼,你看到什麼缺失?

- (void) playaudio: (id) sender 
{ 
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Theme" 
                ofType:@"mp3"]; 
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; 

    self.audioPlayer = [[AVAudioPlayer alloc] 
        initWithContentsOfURL:fileURL error:nil]; 

    self.audioPlayer.currentTime = 0; 
    [self.audioPlayer play]; 
} 

- (void)pause: (id)sender 
{ 
    [audioPlayer pause]; 
} 

- (void) stop: (id) sender 
{ 
    [audioPlayer stop]; 
} 
+0

請提供您要acheive,與更多的代碼是什麼更詳細的解釋;) – craig1231 2012-01-01 20:39:46

+0

也許嘗試使用您的屬性,而不是伊娃的直接? '[self.audioPlayer pause]' – 2012-01-01 21:28:32

+0

已經嘗試過了。但它沒有奏效。 – user1120133 2012-01-01 21:56:51

回答

3

假設你鏈接的取消暫停行動playAudio,這段代碼有:

self.audioPlayer.currentTime = 0; 

這將從頭開始的音頻文件,而不是從那裏被暫停。

如果這不是問題,你一定要發佈更多的代碼。

2

如果我下你的努力做你的問題是,你含蓄開始定時器關火視圖顯示方式,並期望他們停止,沒有任何消息或邏輯。如果是這樣,你不會試圖睡覺的應用程序,只是停止發射這些方法。

與現有代碼的簡單的解決辦法是設置一個BOOL appIsPaused和In設定布爾適當取決於按鈕的狀態的方法playpauseAction。

然後在您的displayviewsAction包裹在你的代碼中的if語句(即如果(!appIsPaused){})。如果應用程序在視圖更新方法被觸發之前暫停,BOOL將被設置爲YES,並且視圖不會更新。

+0

可以請你告訴我如何做到這一點的編碼 – user1120133 2012-02-18 18:20:29

+0

謝謝你給了我正確的意見 – user1120133 2012-02-18 18:33:20

+0

假設你有BOOL appIsPaused宣佈,在playpauseAction:行'[audioPlayer暫停]之後方法'加上'appIsPaused = YES;'和在[audioPlayer播放]後添加'appIsPaused = NO;'。然後,用'if(!appIsPaused){FirstViewController * viewController = [[FirstViewController alloc] init]啓動displayviewsAction方法; ...' – VsSoft 2012-02-18 23:40:35

0

試試這個:

- (void) stop: (id) sender 
{ 
    if (audioPlayer.playing) 
    { 
     [player stop]; 
     audioPlayer.currentTime = 0; 
    } 
}