Обратный вызов рендеринга Audio Graph перестает вызываться после прерывания аудиосеанса

Я использую службы Audio Unit Processing Graph Services на iOS, чтобы создать небольшой график аудиоустройств для вывода звука. Я устанавливаю обратный вызов рендеринга и передаю аудиоданные в граф при вызове обратного вызова.

Это работает нормально, пока моя аудиосессия не будет прервана (например, телефонным звонком или сигналом тревоги); в этот момент обратный вызов останавливается и больше никогда не вызывается, даже после завершения прерывания.

Я попытался снова вызвать AUGraphStart() на графике, но это не помогло. Есть идеи?


person leremjs    schedule 05.06.2012    source источник


Ответы (1)


Оказывается, вам нужно явно остановить график с помощью AUGraphStop() в обратном вызове прерывания; в противном случае вызов AUGraphStart() не будет иметь никакого эффекта.

person leremjs    schedule 06.06.2012
comment
Какой обратный вызов прерывания мы должны вызывать? Кажется, я звоню, но AUGraphStart все еще не работает. - person kevlar; 19.11.2013
comment
Вы имеете в виду, что ваш график никогда не запускается или просто не перезапускается после прерывания? - person leremjs; 20.11.2013
comment
Это не было перезапуском, но я думаю, что исправил это. У меня было несколько вызовов для запуска за цикл старт-стоп, поэтому я изменил весь свой код, чтобы убедиться, что он запускался только один раз и останавливался только один раз за цикл старт-стоп. - person kevlar; 21.11.2013
comment
Да, это еще одна сложная деталь... кажется, что несколько вызовов AUGraphStart и AUGraphStart должны быть сбалансированы. Поэтому, если вы дважды вызываете stop, вам нужно дважды вызывать start и т. д. - person leremjs; 22.11.2013