Инициализация AVAudioRecorder с помощью AAC - PullRequest
5 голосов
/ 18 мая 2010

Я хочу инициализировать AVAudioRecorder с форматом файла aac, но он не работает ...

Что не так со следующим кодом?

soundFilePath = [soundFilePath stringByAppendingPathExtension:@"aac"];
NSURL *url = [NSURL fileURLWithPath:soundFilePath isDirectory:FALSE];
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt: 'aac '] forKey:AVFormatIDKey];                                     //General Audio Format Settings 
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];                                 //          "
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];                                  //          "
[recordSetting setValue:[NSNumber numberWithInt: 32] forKey:AVLinearPCMBitDepthKey];                                //Linear PCM Format Settings 
[recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];                             //          "
[recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];                                 //          "
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityLow] forKey:AVEncoderAudioQualityKey];                //Encoder Settings 
[recordSetting setValue:[NSNumber numberWithInt:96] forKey:AVEncoderBitRateKey];                                    //          "
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitDepthHintKey];                               //          "
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityLow] forKey:AVSampleRateConverterAudioQualityKey];    //Sample Rate Conversion Settings

_recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:nil];

это распределение просто возвращает ноль ...

Любая помощь будет оценена ...!

Ответы [ 5 ]

3 голосов
/ 10 мая 2012

Удалите каждую строку о PCM и измените строку с formatIDKey на

[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,

Кстати, правильнее использовать m4a в качестве расширения, а не aac, потому что расширение aac использовалось для формата MPEG2 AAC.

1 голос
/ 27 ноября 2011

iOS 5 позволяет записывать в AAC. Попробуйте это, используя «kAudioFormatMPEG4AAC» для AVFormatIDKey.

0 голосов
/ 09 февраля 2011

Просто используйте следующие настройки для записи вокала в файл aac.

    recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatAppleLossless] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
    [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
    [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
    [recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
    [recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
0 голосов
/ 25 октября 2011

Нет настроек для записи в AAC, хотя вы можете конвертировать на лету:

https://github.com/michaeltyson/TPAACAudioConverter

0 голосов
/ 17 июня 2010

[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC_HE_V2] forKey:AVFormatIDKey]; Формат для этого - перечисление. Попробуйте заглянуть в перечисления. Для 'aac' нет формата IDKey. Имеется aacp и др.

...