我正在尝试从我的iTunes资料库中获取一个文件并生成剪辑/剪裁版本。我遇到的问题是我告诉它在特定的时间范围内修剪。它以适当的持续时间进行修剪,但开始时间不同。
我正在使用Trim audio with iOS中提供的导出会话方法。
这个github项目重现了这个问题。它的设置是在10秒内开始修剪,持续时间为3秒。产生的是时间范围为0:12.1到0:15.1的剪辑。
https://github.com/nickbolton/AVAssetExportSessionDebug.git
关于修剪时间范围错误原因的任何想法? 谢谢!
答案 0 :(得分:3)
您的代码本身没有任何问题。
您遇到的问题是您开始使用MP3的直接后果。它不会自动提供准确的持续时间和时间。你必须要求他们。
你在说:
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:self.sourceAudioURL
options:nil];
nil
选项正在造成伤害。相反,只需说:
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:self.sourceAudioURL
options:@{AVURLAssetPreferPreciseDurationAndTimingKey:@YES}];