2 ooomiao oOOMIAO 于 2012.11.07 17:10 提问

如何从 AVAudioPlayer中获取duration 持续时间 (HH:MM:SS)

在iPhone应用里用到AVAudioPlayer播放音频文件。然后从AVAudioPlayer 中获取持续时间

我获得的duration值是这样的:252.765442。

但是我想要的是这种格式: HH/MM/SS 02:52:76

如何转换?请帮忙

我写出来的代码没有用:

audioPlayer =  [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:tempFilePath] error:&err];
    [audioPlayer setDelegate:self];
    [audioPlayer prepareToPlay];

    float duration = (float)audioPlayer.duration;
    NSLog(@"duration:%f",duration);

1个回答

vikeyToy
vikeyToy   2012.11.07 17:27
已采纳

试试看:

NSTimeInterval theTimeInterval = audioPlayer.duration;
 // 获取system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];

// 创建NSDates
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1];
// 转换到小时、分钟
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *breakdownInfo = [sysCalendar components:unitFlags fromDate:date1  toDate:date2  options:0];
NSLog(@"Duration: HH/MM/SS %d:%d:%d", [breakdownInfo hour], [breakdownInfo minute], [breakdownInfo second]);
[date1 release];
[date2 release];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!