如何获取在AVAudioPlayer中播放的歌曲的剩余时间

时间:2012-05-25 06:58:07

标签: ios avaudioplayer

我是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是用于显示歌曲当前时间的标签。

但我正在努力让这个逻辑起作用并显示歌曲的剩余时间

如果有人知道这个,请帮助我......

3 个答案:

答案 0 :(得分:2)

NSTimeInterval remaining = audioPlayer.duration - audioPlayer.currentTime;

答案 1 :(得分:2)

试试这个

CGFloat remainingTime =   audioPlayer.duration - audioPlayer.currentTime

答案 2 :(得分:0)

试试这个 -

NSString *strTimeLeft = [self getTimeFromTimeInterval:CMTimeGetSeconds(_player.currentItem.duration) - CMTimeGetSeconds(_player.currentTime)];

在班级中添加此方法

- (NSString*)getTimeFromTimeInterval:(NSTimeInterval)timeInterval
{
    NSInteger interval = (NSInteger)timeInterval;
    NSInteger seconds = interval%60;
    NSInteger minutes = (interval/ 60)%60;
    //NSInteger hr = (interval/3600)%60;

    NSString *strTime = [NSString stringWithFormat:@"%02d:%02d",minutes,seconds];
    return strTime;
}