我有这样的valuechanged事件处理程序:
-(void)scrub:(id)sender
{
if(self.audioPlayer.playing)
{
self.audioPlayer.pause;
self.audioPlayer.currentTime=self.scrubber.value;
self.audioPlayer.play;
}
}
为什么不倒带?我应该添加什么?谢谢! 而且,如何在标签中显示当前时间?
答案 0 :(得分:2)
要设置时间,您可以执行以下操作:
[audioPlayer setTime:self.scrubber.value];
但是,您需要验证这实际上是一个数字。您还需要确保它适合您正在使用的文件。我不知道你正在使用什么样的洗涤器。如果setCurrentTime不起作用,则擦除器存在一些问题。
如果您使用的是UISlider,您可以执行以下操作来设置时间:
double value = progressSlider.value;
double newSeekTime = (value / 100.0) * audioPlayer.duration;
[audioPlayer setCurrentTime:(int)newSeekTime];
要获得时间,您只需执行audioPlayer.currentTime。这是一个NSTimeInterval,只是一个双倍。要显示时间,您可以执行以下操作:
NSString *positionString = [NSString stringWithFormat:@"%.2d:%.2d / %.2d:%.2d",
(NSInteger)progress/60,
(NSInteger)progress%60,
(NSInteger)duration/60,
(NSInteger)duration%60];
myLabel.text = positionString;