Запись фрагментированного аудио в фоновом режиме iOS - PullRequest
3 голосов
/ 24 марта 2011

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

У меня почти все получилось, когда приложение находится на переднем плане. Я использую AVAudioRecorder для записи ввода в течение X секунд. Как только я получаю обратный вызов, который закончен, я записываю еще X секунд. Каждый сеанс записи сохраняется в отдельном файле, и я отправляю эти файлы асинхронно на сервер.

Однако, похоже, это не работает, когда мое приложение переходит в фоновый режим.

При переходе в фоновый режим текущий сеанс записи продолжает запись до истечения X секунд, однако мое приложение приостанавливается, прежде чем я могу начать другой сеанс записи.

Есть идеи?

Вот код моего обратного вызова:

- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)aRecorder successfully:(BOOL)flag {
    NSLog(@"hello");

    [self initRecorder];

    [recorder recordForDuration:5];

}

Ответы [ 2 ]

6 голосов
/ 24 марта 2011

Вы не можете возобновить запись в фоновом режиме.

Поэтому вместо этого используйте API-интерфейсы Audio Queue или Audio Unit RemoteIO, которые дадут вам меньшие "куски" (блоки буфера обратного вызова) звука без остановки звуказапись.

Объедините небольшие аудиоблоки обратного вызова в более крупные куски файлов, если это необходимо для сетевого протокола.

1 голос
/ 24 марта 2011

Фоновое воспроизведение звука поддерживается многозадачностью, но не очень понятно, что фоновая запись звука.Однако я не пробовал это.API аудиоустройства может позволить вам продолжать записывать аудио, пока приложение находится в фоновом режиме.Тем не менее, это своего рода хитрость, и я предполагаю, что в какой-то момент это может быть убрано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...