gpt4 book ai didi

ios - 音频播放器持续时间和耗时标签的滞后

转载 作者:行者123 更新时间:2023-11-28 22:11:23 26 4
gpt4 key购买 nike

我正在使用的音频播放器上有两个标签。一种是耗时,一种是歌曲的持续时间,就像在 iTunes 中一样。

然而,当我玩的时候,时间有滞后。在一首 7 秒的歌曲中,耗时显示为“0:00”,持续时间显示为“-0:07”。然后,当我播放这首歌时,有一会儿标签显示为“0:01”和“-0:07”,然后转到“0:01”和“-0:06”

这是我的设置方式。

-(NSString*)timeFormat:(float)value{

float minutes = lroundf((value)/60);
float seconds = lroundf((value) - (minutes * 60));

int roundedSeconds = (seconds);
int roundedMinutes = (minutes);

NSString *time = [[NSString alloc]
initWithFormat:@"%d:%02d",
roundedMinutes, roundedSeconds];
return time;

- (void)updateTime:(NSTimer *)timer {


self.timeElapsed.text = [NSString stringWithFormat:@"%@",
[self timeFormat:[player currentTime]]];



self.duration.text = [NSString stringWithFormat:@"-%@", [self timeFormat: player.duration - player.currentTime]];

播放按钮触发这个计时器:

self.timer = [NSTimer scheduledTimerWithTimeInterval:0.01
target:self
selector:@selector(updateTime:)
userInfo:nil
repeats:YES];

有什么想法吗?

谢谢。

最佳答案

如果其他人遇到过这个问题,这是最终对我有用的答案。归结为将我的当前时间四舍五入。

-(NSString*)timeFormat:(float)value{

float minutes = floor(lroundf(value)/60);
float seconds = lroundf((value) - (minutes * 60));

int roundedSeconds = lroundf(seconds);
int roundedMinutes = lroundf(minutes);

NSString *time = [[NSString alloc]
initWithFormat:@"%d:%02d",
roundedMinutes, roundedSeconds];
return time;

- (void)updateTime:(NSTimer *)timer {


self.timeElapsed.text = [NSString stringWithFormat:@"%@",
[self timeFormat: ceilf(player.currentTime)]];


self.duration.text = [NSString stringWithFormat:@"-%@", [self timeFormat: (player.duration - ceilf(player.currentTime))]];

}

关于ios - 音频播放器持续时间和耗时标签的滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22839321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com