0

我是 iPhone 新手。我正在开发音频播放器。我必须在音频播放器中显示当前歌曲的当前时间和剩余时间。在视频播放器中它会默认获取,但在音频播放器中它没有得到,所以我需要编写逻辑来获取歌曲的当前时间。

下面的代码就是为此

int minutes = (int)audioPlayer.currentTime / 60;
int seconds = (int)audioPlayer.currentTime % 60;
startDurationLabel.text = [NSString stringWithFormat:@"%d:%02d",minutes,seconds];

audioPlayer是一个实例,AVAudioPlayerstartDurationLabel显示歌曲当前时间的标签。

我正在努力获得显示歌曲剩余时间的逻辑。它从持续时间的背面每秒逐渐减少,例如歌曲的持续时间为 4 分钟:52 秒,然后每秒减少到 4 分钟:51 秒、4 分钟:50 秒、4 分钟:49 秒......就像在 iphone 视频播放器应用程序中一样。

我试过下面的代码

NSTimeInterval interval = audioPlayer.duration - audioPlayer.currentTime;
NSLog(@"the interval is %f",interval);

在这里,我得到时间间隔的值292, 291, 290。它逐渐减少,但我想以 min:sec 的格式展示它们是如何可能的?

如果有人知道这一点,请帮助我。

4

2 回答 2

0

您可以使用NSTimer它并每隔一秒触发一次。

NSTimer *progressTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(setProgress) userInfo:nil repeats:YES];

setProgress是您需要更新标签文本的方法。

于 2012-05-25T07:22:17.437 回答
0

创建 NSTimer 和触发方法 timerFired: 每秒

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];

- (void) timerFired:(NSTimer *)timer {
NSTimeInterval remainingTime = audioPlayer.duration - audioPlayer.currentTime;

}

NSTimeInterval 与 double 相同。

于 2012-05-25T07:27:23.907 回答