2
assetURL = [item valueForProperty: MPMediaItemPropertyAssetURL];
NSLog(@"%@", assetURL); // get song url
AVURLAsset* audioAsset = [AVURLAsset URLAssetWithURL:assetURL options:nil]; // add song url into AVURLasset
CMTime audioDuration = audioAsset.duration; //get duration in second
int  audioDurationSeconds = CMTimeGetSeconds(audioDuration); // get song duration in seconds.....

このコードでは、曲の長さを秒単位で取得します。曲の長さを分単位で指定する必要があります。

4

3 に答える 3

2
 -(NSString *)trackDuration:(NSInteger)duration {
     NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init];
     return  [formatter stringFromTimeInterval:duration];
 }

これは、最も数学的なルートではありません。

SpotifySDK の場合、デュレーションを 1000 で割る必要がありました。

于 2018-04-24T19:08:22.160 に答える
1
CMTime audioDuration = audioAsset.duration;
NSUInteger totalSeconds = CMTimeGetSeconds(audioDuration);
NSUInteger hours = floor(totalSeconds / 3600);
NSUInteger minutes = floor(totalSeconds % 3600 / 60);
NSUInteger seconds = floor(totalSeconds % 3600 % 60);

NSLog(@"hours = %i, minutes = %02i, seconds = %02i",hours,minutes,seconds);
于 2015-07-20T06:16:54.230 に答える
-1

秒 (int) を分 (double) に変換します。

于 2015-07-20T05:38:26.013 に答える