首页 文章

UISlider拇指不会随着ios objective-c中标签值的变化而移动

提问于
浏览
0

在音乐播放应用程序(来自网址的曲目,通过tumtumtum使用STKAudioPlayer)我向音乐播放器视图控制器添加了一个UISlider,我处理了slidervaluechanged方法以使音频播放器寻找特定的播放时间,然后我设置连续属性在viewDidLoad中,UISlider为YES,但是当音乐播放滑块的拇指图像不移动时,它在播放歌曲时是静态的,与其他音乐播放器不同,滑块拇指随着时间的变化而移动以显示进度 . 有没有人知道我可能做错了什么?这就是我所做的

self.progressSlider.continuous = YES;
[self.progressSlider setValue:self.audioPlayer.progress animated:YES];

if (!audioPlayer) {
        self.progressSlider.value = 0;
        self.streamStatus.text = @"";
        return;
    }
    if (audioPlayer.duration != 0) {

        self.progressSlider.minimumValue = 0;
        self.progressSlider.maximumValue = audioPlayer.duration;
        self.progressTimer.text = [NSString stringWithFormat:@"%@", [self formatTimeFromSeconds:audioPlayer.progress]];
        self.musicLength.text = [NSString stringWithFormat:@"%@", [self formatTimeFromSeconds:audioPlayer.duration]];
    }

还有这个:

-(NSString*) formatTimeFromSeconds:(int)totalSeconds

{

int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;

return [NSString stringWithFormat:@"%02d:%02d", minutes, seconds];

}

  • (void)setupTimer {timer = [NSTimer timerWithTimeInterval:0.001 target:self selector:@selector(ticker)userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

}

1 回答

  • 0

    我认为你应该使用当前时间而不是持续时间 .

    尝试

    [labelTime setText:[NSString stringWithFormat:@"%i:%.02i", (int)(CMTimeGetSeconds(audioPlayer.currentTime) / 60), (int)CMTimeGetSeconds(audioPlayer.currentTime) % 60]];
    

相关问题