0

今、私はiOSで曲の長さを取得しようとしています。

- (NSString *)returnofTotalLength
{
    float duration = [[self.player.nowPlayingItem valueForProperty:MPMediaItemPropertyPlaybackDuration] floatValue]/60.0f;
    NSString *length = [NSString stringWithFormat:@"%.2f",duration];;
    NSString *totalLength = [length stringByReplacingOccurrencesOfString:@"." withString:@":"];

    return totalLength;
}

上記のコードは、のように表示される曲の全長です5:90。秒は分なので、それ5:90は真実ではありません。601

する必要があります6:30

だから私はその値を制限したい1 minute (60 seconds).

どうすればいいですか助けてください?

ありがとう。

4

4 に答える 4

1

これは簡単な数学です。擬似コード:

minutes = (int)(seconds / 60);
rest    = seconds % 60;
result  = minutes:rest

Objc:

int seconds   = 150;
int minutes   = (int)(seconds / 60);
int rest      = seconds % 60;
return [NSString stringWithFormat:@"%i:%i", minutes, rest];
于 2013-01-17T09:58:51.427 に答える
1

次のことを行います:

min=(int)duration/60;
sec=duration%60;

分と秒を追加するより

于 2013-01-17T10:02:25.003 に答える
1

あなたの時間が何時間にもわたるなら、あなたはこれのために行くことができます:

NSInteger seconds = duration % 60;
NSInteger minutes = (duration / 60) % 60;
NSInteger hours = duration / (60 * 60);
NSString *result = nil;

result = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hours, minutes, seconds];
于 2013-01-17T11:26:54.773 に答える
0

私は自分の質問に対する答えを得たところです。他の回答をありがとう。:)

NSTimeInterval currentProgress = [[self.player.nowPlayingItem valueForProperty:MPMediaItemPropertyPlaybackDuration] floatValue];

    float min = floor(currentProgress/60);
    float sec = round(currentProgress - min * 60);

    NSString *time = [NSString stringWithFormat:@"%02d:%02d", (int)min, (int)sec];
    return time;

NSStringそれは完全なフォーマットで返されます。

于 2013-01-17T10:23:29.043 に答える