这在iOS 6中运行良好,但是在iOS 7中,在使用AVAssetExportSession将一部分歌曲导出到文件后,导出文件的持续时间在AVAudioPlayer中是错误的,但在AVURLAsset中是正确的。
AVAudioPlayer错误地将持续时间报告为整首歌曲的持续时间。
我正在使用https://developer.apple.com/library/ios/qa/qa1730/_index.html
中的步骤导出文件并检查持续时间如下:
AVURLAsset* audioAsset = [AVURLAsset URLAssetWithURL:outputURL options:nil];
CMTime audioDuration = audioAsset.duration; // shows correct
和
AVAudioPlayer* avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:outputURL error:nil];
NSTimeInterval duration = avAudioPlayer.duration; // shows wrong
有趣的是,如果我在iTunes中播放导出的文件,它也会显示错误的(整个)持续时间。
我不确定如何解决这个问题。这可能是iOS7中的错误吗?