下面的代碼示例應該讓你開始。據此,滑塊可以用作進度指示器,並且用戶可以擦洗它以在指定位置開始回放。
/* SliderMoved被調用時滑塊值更改─或者當用戶磨砂它或當它被自動更新爲音頻重放的進展*/
-(void)sliderMoved:(id)sender
{
[self.playbackTimer invalidate];
self.playbackTimer = nil;
NSInteger position = (NSInteger)self.slider.value * 60; // Assume the slider scale is in minutes- so convert to sec
if (self.isPlaying)
{
[self.audioPlayer pause];
}
[self.audioPlayer setCurrentTime:position];
if (self.isPlaying)
{
[self startOrResumePlaying];
}
[self updateSlider];
}
/* updateSlider是用於更新滑塊值的輔助函數*/
-(void)updateSlider
{
float total= self.audioPlayer.duration;
float f = (self.audioPlayer.currentTime) ;
self.slider.value = f/60.0;
self.progressLabel.text = [NSString stringWithFormat:@"%.2f",self.slider.value];
}
/* startOrResumePlaying開始音頻播放,並初始化該自動遞增進度指示器的計時器每3秒*/
-(void)startOrResumePlaying
{
[self.audioPlayer prepareToPlay];
[self.audioPlayer play];
self.isPlaying = YES;
self.playbackTimer=[NSTimer scheduledTimerWithTimeInterval:3.0
target:self
selector:@selector(handleTimer:)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.playbackTimer forMode:NSDefaultRunLoopMode];
}