2014-06-11 56 views
0

我工作的應用程序流在線音頻文件。下面的代碼正在工作,但是當音頻文件結束時,播放按鈕不會重置。該按鈕仍然被按下,並且在用戶可以再次播放音頻文件之前,用戶必須按下該按鈕兩次。AVPlayer - 如何重置播放按鈕

我的問題是:如何在音頻文件結束後自動重置播放按鈕?

這裏是我的代碼:

-(IBAction)togglePlayPauseTapped:(id)sender 
    { 
     if(self.togglePlayPause.selected) { 
      [self.audioPlayer pause]; 
      [self.togglePlayPause setSelected:NO]; 
     } else { 
      [self.audioPlayer play]; 
      [self.togglePlayPause setSelected:YES]; 

      self.audioPlayer = [[AVPlayer alloc] init]; 
      NSString *urlString = @"MYURL"; 
      NSURL* urlStream = [NSURL URLWithString:urlString]; 
      AVPlayerItem * currentItem = [AVPlayerItem playerItemWithURL:urlStream]; 

      [self.audioPlayer replaceCurrentItemWithPlayerItem:currentItem]; 
      [self.audioPlayer play]; 




     } 

    }` 

回答

0

設置audioPlayer的自我委託,並確保指定的視圖控制器可以接收AVAudioPlayer委託調用。然後實現audioPlayerDidFinishPlaying方法,並致電togglePlayPauseTapped方法:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 
{ 
    [self togglePlayPauseTapped:nil]; 
} 

總應該是這個樣子:

total picture

編輯:

並更改該

self.audioPlayer = [[AVPlayer alloc] init]; 

到th是:

self.audioPlayer = [[AVAudioPlayer alloc] init]; 
+0

我試過上面的例子,但我遇到了self.audioplayer.delegate = self; –

+0

您確定您向界面添加了** **嗎? – Michael