AVAudioSession
- это только первый шаг к тому, чтобы узнать, что ваше приложение хочет что-то сделать с микрофоном. Я предполагаю, что «печать» означает визуальную визуализацию или добавление аудиоданных в файл.
Если вы хотите записывать аудио в файл можно использовать AVAudioRecorder
класс:
//What are our output settings?
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
// Create the recorder where recorder is declared as a property of the class & outputFileURL is an NSURL to a file path you want to record to
recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:NULL];
recorder.delegate = self;
[recorder prepareToRecord];
// Tell the system you are going to use the mic
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:0 error:nil];
[session setActive:YES error:nil];
// Start recording
[recorder record];
---------------------------------
//When you are done call:
[recorder stop];
NSURL *savedFileURL = recorder.url;
Если вы хотите использовать CoreAudio, чтобы вы могли получить каждый буфер и решить, что делать с ним ваш идти чтобы сделать шаг назад и изучить структуру CoreAudio. CoreAudio позволяет вам быть более гибкими в отношении маршрутизации и дизайна вашей аудиосистемы. Это не может быть объяснено в одном посте, но если вы собираетесь что путь один метод для получения данных от микрофона заключается в следующем:
Создание AudioUnit
из AudioComponent
(Тип: kAudioUnitType_Output
, Подтип: kAudioUnitSubType_RemoteIO
)
Enable IO на AudioUnit
Установите kAudioUnitProperty_StreamFormat
свойство AudioUnit к (скорее всего формата PCM) AudioStreamBasicDescription
Перехват данных с помощью AURenderCallbackStruct
Там, вероятно, это способ сделать это. Что вы пробовали? Что пошло не так и где? – Nick