无法使用AVAssetExportSession修剪音频文件

时间:2014-12-21 18:00:07

标签: objective-c avfoundation core-audio avassetexportsession

我正在尝试从我的iTunes资料库中获取一个文件并生成剪辑/剪裁版本。我遇到的问题是我告诉它在特定的时间范围内修剪。它以适当的持续时间进行修剪,但开始时间不同。

我正在使用Trim audio with iOS中提供的导出会话方法。

这个github项目重现了这个问题。它的设置是在10秒内开始修剪,持续时间为3秒。产生的是时间范围为0:12.1到0:15.1的剪辑。

https://github.com/nickbolton/AVAssetExportSessionDebug.git

关于修剪时间范围错误原因的任何想法? 谢谢!

1 个答案:

答案 0 :(得分:3)

您的代码本身没有任何问题。

您遇到的问题是您开始使用MP3的直接后果。它不会自动提供准确的持续时间和时间。你必须要求他们。

你在说:

AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:self.sourceAudioURL 
    options:nil]; 

nil选项正在造成伤害。相反,只需说:

AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:self.sourceAudioURL 
    options:@{AVURLAssetPreferPreciseDurationAndTimingKey:@YES}];