我是iphone的新手。我正在制作音频播放器。我必须在audioplayer中显示当前歌曲的当前时间和剩余时间。在视频播放器中,它将作为默认设置,但在音频播放器中它没有得到,所以我需要编写逻辑来获取歌曲的当前时间。
以下代码适用于
int minutes = (int)audioPlayer.currentTime / 60;
int seconds = (int)audioPlayer.currentTime % 60;
startDurationLabel.text = [NSString stringWithFormat:@"%d:%02d",minutes,seconds];
此处audioPlayer
是AVAudioPlayer
的实例,startDurationLabel
是用于显示歌曲当前时间的标签。
我正在努力获得显示歌曲剩余时间的逻辑。它从持续时间的背面逐渐减少,例如歌曲的持续时间是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的形式显示那些可能的方式?
如果有人知道这一点,请帮助我。
答案 0 :(得分:0)
你可以使用NSTimer
并每隔一秒发射一次。
NSTimer *progressTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(setProgress) userInfo:nil repeats:YES];
setProgress
是您需要更新标签文字的方法。
答案 1 :(得分:0)
创建NSTimer和fire方法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相同。