2014-11-14 48 views
0

我正在使用AVAudioPlayer。當我點擊播放按鈕時,我想要連續播放音頻文件序列。此外,當我上播放按鈕再次點擊,順序播放應該暫停,然後當按鈕被竊聽在AVAudioPlayer中播放/暫停多個音頻文件

繼再次恢復是我的代碼:

NSTimeInterval totalTime, currentTime; 
isPaused = NO; 
isFirst = YES; 

-(void)btnPlay:(id)sender 
{ 
    if (isFirst) 
    { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     NSMutableArray *audioList = [defaults objectForKey:@"AudioArray"]; 
     [defaults synchronize]; 

     NSLog(@"Audio to be Played : %@", audioList); 

     for(int i = 0; i < [audioList count]; i++) 
     { 
      NSLog(@"Current Audio : %@", [audioList objectAtIndex:i]); 

      NSString *path = [[NSBundle mainBundle] pathForResource:@"Alarm_1" ofType:@"mp3"]; 
      NSError *error = nil; 
      NSURL *url = [NSURL fileURLWithPath:path]; 
      [audioPlayer setDelegate:self]; 
      audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 

      [audioPlayer play]; 
      isFirst = NO; 

      totalTime = audioPlayer.duration; 
      NSLog(@"Total Time : %f", totalTime); 
     } 
    } 
    else if (!isFirst) 
    { 
     if (isPaused) 
     { 
      [audioPlayer setCurrentTime:currentTime]; 
      [audioPlayer play]; 
      isPaused = NO; 
     } 
     else if (!isPaused) 
     { 
      currentTime = audioPlayer.currentTime; 

      [audioPlayer pause]; 
      isPaused = YES; 
     } 
    } 
} 
+0

你想你的時候播放多種音頻文件點擊播放按鈕?我的意思是歌曲選擇沒有下一個或上一個按鈕? –

+0

不,沒有下一個或上一個按鈕 –

+0

無論如何,我得到了解決方案 –

回答

0
isPlaying = NO; 
if (isFirst) 
{ 
    defaults = [NSUserDefaults standardUserDefaults]; 
    audioList = [defaults objectForKey:@"AudioArray"]; 
    [defaults synchronize]; 

    if ([audioList count] != 0) 
    { 
     NSLog(@"Audio to be Played : %@", audioList); 

     NSLog(@"Current Audio : %@", audioList[currentID]); 

     NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@", audioList[currentID]] ofType:@"wav"]; 
     NSError *error = nil; 
     NSURL *url = [NSURL fileURLWithPath:path]; 
     audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
     [audioPlayer setDelegate:self]; 

     [audioPlayer setVolume:currentVolume]; 
     [audioPlayer play]; 
     [btnPlay setImage:[UIImage imageNamed:@"CameraViewPauseBlack"] forState:UIControlStateNormal]; 
     isFirst = NO; 
     isPlaying = YES; 

     totalTime = audioPlayer.duration; 
     currentID = currentID + 1; 
    } 
    else 
    [MNMToast showWithText:@"Please select an Audio file to Play" autoHidding:YES priority:MNMToastPriorityHigh completionHandler:nil tapHandler:nil]; 

} 
else if (!isFirst) 
{ 
    if (!isPlaying) 
    { 
     [audioPlayer setCurrentTime:currentTime]; 
     [audioPlayer setVolume:currentVolume]; 
     [audioPlayer play]; 
     [btnPlay setImage:[UIImage imageNamed:@"CameraViewPauseBlack"] forState:UIControlStateNormal]; 
     isPlaying = YES; 
    } 
    else if (isPlaying) 
    { 
     currentTime = audioPlayer.currentTime; 

     [audioPlayer pause]; 
     [btnPlay setImage:[UIImage imageNamed:@"CameraViewPlayBlack"] forState:UIControlStateNormal]; 
     isPlaying = NO; 
    } 
} 
相關問題