Эта публикация: Из библиотеки iPod в образцы PCM гораздо меньшим количеством шагов, чем ранее было необходимо описывает, как загрузить файл из пользовательской библиотеки ipod и записать его в файловую систему как линейный pcm (wav ) файл.
Я считаю, что изменения, которые вам нужно будет внести в код для загрузки файла из файловой системы, будут в NSURL, описывающем, где находится актив:
-(IBAction) convertTapped: (id) sender {
// set up an AVAssetReader to read from the iPod Library
NSURL *assetURL = [[NSURL alloc] initFileURLWithPath:@"your_m4a.m4a"];
AVURLAsset *songAsset =
[AVURLAsset URLAssetWithURL:assetURL options:nil];
NSError *assetError = nil;
AVAssetReader *assetReader =
[[AVAssetReader assetReaderWithAsset:songAsset
error:&assetError]
retain];
if (assetError) {
NSLog (@"error: %@", assetError);
return;
}
Если вы идете в обратном направлении, вам нужно изменить форматирование на выходном конце:
NSDictionary *outputSettings =[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)],
AVChannelLayoutKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey,
nil];
Я не уверен в точных настройках, которые здесь используются для m4a, но это должно приблизить вас.
Другой вариант - загрузить в ffmpeg lib и выполнить там все ваши преобразования, но это, похоже, отличается от того, что вы хотите.