запись потокового аудио - PullRequest
4 голосов
/ 25 июля 2010

На самом деле я делаю приложение, которое должно воспроизводить и записывать потоковое аудио из Интернета на ipad. Потоковое аудио закончено, мне придется очень скоро приступить к записи, и я понятия не имею, как поступить.

Не могли бы вы дать мне подсказку ??? Идея? Он должен будет воспроизводиться при одновременной записи в AAC или MP3.

Спасибо.

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Вам потребуется использовать API-интерфейс AudioQueue более низкого уровня и использовать AudioSession API для настройки аудио-сеанса.

Затем вам нужно будет заполнить структуру AudioStreamBasicDescription и создатьновая входная очередь с AudioQueueNewInput() и включающая функцию обратного вызова для обработки входных буферов.

А затем вам нужно будет создать 3 буфера, используя AudioQueueAllocateBuffer() и AudioQueueEnqueueBuffer().И только тогда вы будете готовы позвонить AudioQueueStart().Вы также должны обрабатывать прерывания аудио-сеанса и обрабатывать остановку аудио-очереди.

Это просто даст вам поток буферов, содержащих несжатые 16-битовые целочисленные аудиоданные PCM.Вам по-прежнему нужно сжимать данные, что является еще одним источником червей, который включает использование AudioConverter API, чего я не делал на iPhone OS, поэтому я не знаю, что там будет работать.

0 голосов
/ 06 сентября 2014

Пожалуйста, посмотрите на эту платформу.Он предоставляет данные для записи во время записи Streaming Kit

Воспроизведение MP3 через HTTP

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];

[audioPlayer play:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"];

И добавляет свои данные в NSMutabledata для воспроизведения в автономном режиме с помощью этого делегата.

Перехватывать данные PCM непосредственно перед их воспроизведением

 [audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
   {
   ...
   }];
...