У меня есть волновой файл 22 кГц и я хочу файл m4a 22 кГц. AVAssetExportSession с предустановленным AVAssetExportPresetAppleM4A автоматически преобразует мой WAV в 44 кГц. Я пробовал разные пресеты и ноль для создания ExportSession, но безуспешно.
Есть ли способ установить пользовательские свойства экспорта AVAssetExportSession или мне нужен совершенно другой подход, подобный описанному в Как преобразовать WAV-файл в M4A? ?
вот код, который у меня есть, который отлично работает, если вы хотите файл с частотой 44 кГц:
AVURLAsset *wavAsset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:wavPath] options:optionsDict];
AVMutableComposition *mutableComposition = [AVMutableComposition composition];
[mutableComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, wavAsset.duration)
ofAsset:wavAsset atTime:kCMTimeZero error:&error];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]
initWithAsset:[mutableComposition copy] presetName:AVAssetExportPresetAppleM4A];
exportSession.outputURL = [NSURL fileURLWithPath:m4aPath];
exportSession.outputFileType = AVFileTypeAppleM4A;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
switch (exportSession.status) {
case AVAssetExportSessionStatusCompleted: {
[exportSession release];
completionHandler(nil);
break;
}
case AVAssetExportSessionStatusFailed: {
NSLog(@"There was an error while exporting the file: %@", exportSession.error);
completionHandler(exportSession.error);
break;
}
// ... handle some other cases...
default: {
break;
}
}
}];
Было бы здорово, если бы я что-то пропустил.
Спасибо заранее,
Dom