这在 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中的错误吗?