2013-11-15 89 views
0

當我的AVAudioRecorder正在記錄時,我會如何增加UIProgressView的進度計數器?我真的不知道從哪裏遞增 ...當avaudiorecorder正在記錄時增加uiprogressview

代碼的開始和結束錄製:

- (IBAction)beginRecording:(id)sender { 

     if (player.playing) { 
      [player stop]; 
     } 

     AVAudioSession *session = [AVAudioSession sharedInstance]; 
     [session setActive:YES error:nil]; 

     // Start recording 
     [recorder recordForDuration:8]; 

     [_recordButton setTitle:@"Recording..." forState:UIControlStateNormal]; 
} 

- (IBAction)endRecording:(id)sender { 

    // logic to stop recording 
    [recorder stop]; 

    AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    [audioSession setActive:NO error:nil]; 

    [_recordButton setTitle:@"Record" forState:UIControlStateNormal]; 
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:recorder.url error:nil]; 
    [player setDelegate:self]; 
    [player play]; 
} 

回答

0

你需要使用的NSTimer閱讀AVAudioRecorder.currentTime和更新您的UIProgressView.progress。

例如:

- (void)startRecord 
{ 

    NSTimer *tm = [NSTimer scheduledTimerWithTimeInterval:1.0f 
                target:self 
               selector:@selector(updateRecordingProgress) 
               userInfo:nil 
                repeats:YES]; 
    [tm fire]; 
} 

- (void)updateRecordingProgress 
{ 
    //update your UIProgressView here 
    yourProgressView.progress = (recorder.currentTime/8.0); 

} 
+0

你怎麼格式化成可讀的字符串這一點。 00:00:00 – Franky