AVAudioplayer的简单倒带

时间:2011-08-23 07:21:03

标签: iphone objective-c avaudioplayer

我有这样的valuechanged事件处理程序:

-(void)scrub:(id)sender
{
    if(self.audioPlayer.playing)
    {
        self.audioPlayer.pause;
        self.audioPlayer.currentTime=self.scrubber.value;
        self.audioPlayer.play;
    }
}

为什么不倒带?我应该添加什么?谢谢! 而且,如何在标签中显示当前时间?

1 个答案:

答案 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;