Моя проблема заключается в следующем:
Мне нужно захватить каждые 320 байт необработанных аудиоданных.
Я делаю это с помощью NSTimer, который запускает метод каждые 0,02 секунды - это потому, что мне нужно записывать 8000 Гц и 16-битный монофонический звук, и я рассчитал, что это должно быть 50x в секунду (8000 * 16/320/8).
Итак, зная, что AVAudioRecorder
сохраняет в файл, я могу получить каждые 320 байт из этого файла на [[NSData dataWithContentsOfURL:[audioRecorder url]] subdataWithRange:NSMakeRange(bytesUsed, 320)]
, но меня смущает то, что в тот момент, когда я начинаю при записи размер файлов данных составляет 4096 байт , а затем через 0,5 секунды - 9424 байт и увеличивается примерно на 5,3 тыс. байт каждые полсекунды.
Так что я запутался, если получаю правильные данные и думаю, что настройки могут быть неправильными.
Текущие настройки для AVAudioRecorder
:
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16], AVEncoderBitRateKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithFloat:8000.0], AVSampleRateKey,
Итак, главная проблема:
Какие настройки я должен использовать?
Правильный ли это способ получения сегментов из текущей аудиозаписи?
Я прошу прощения за плохое объяснение, задавайте вопросы, чтобы помочь мне сделать его более понятным.