iPhone: запись в файлы CAF производит только статический - PullRequest
0 голосов
/ 30 марта 2010

Я занимаюсь разработкой приложения для записи голоса на iPhone, которое создает аудиофайлы в формате caf.

Когда я воспроизводю эти файлы, единственное, что я здесь вижу, это статическое. Кроме того, размеры файлов огромны, например, до 1,7 МБ для 10-секундной записи.

Могу ли я записать в другом формате, например, mp3. У кого-нибудь есть пример кода, как это сделать?

спасибо

1 Ответ

0 голосов
/ 30 марта 2010

Вы должны использовать класс AVAudioRecorder для этого. Вот ссылка на ссылку для разработчиков: Ссылка AVAudioRecorder

Затем вы можете использовать следующий код:

// Init audio with record capability
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];

// Set recording setting
NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEGLayer3] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:48000] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
// Create a AVAudioRecorder object
tmpUrl = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent: [NSString stringWithFormat: @"tmp.mp3"]]];
AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:tmpUrl settings:recordSetting error:nil];

// Start the recorder
[recorder record];
// record your voice here
[recorder stop];

// Play recorded sound
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpUrl error:nil];
[player play];

Вот и ты !!

...