2009-12-28 1 views
1

Я всю ночь пытался понять это. Мой код в основном такой же, как пример Apple here. Тем не менее, устройство воспроизводит только ПЕРВЫЙ буфер, помещенный в очередь (я слышу содержимое первого буфера при запуске приложения). После этого звук вообще не будет поступать с устройства. Воспроизведение все еще работает, хотя, поскольку AQS продолжает запускать мою функцию AudioQueueOutputCallback. Кроме того, каждый вызов AQS возвращает 0, поэтому ничего не происходит.Службы очереди аудио на iPhone, только играющий первый зарегистрированный буфер?

Теперь я могу получить последующие буферы для воспроизведения, пока я звоню AudioQueueEnqueueBuffer из функции WITHIN my callback. Это не сработает, поскольку я могу только заполнить и выгрузить буферы из моего обратного вызова AudioFileStream_PacketsProc в качестве данных cines из сокета и в AudioFileStreamParseBytes.

У кого-нибудь еще есть эта проблема? Похоже, ошибка в AQS мне ...

Спасибо, Andrew

ответ

0

Фигурные это в случае, если кто-то еще есть эта проблема ...

Я не понимаю, что AQ всегда движется вперед во время. Поскольку я использовал аудиоданные из потока данных UDP, я бы постепенно отставал от AQ из-за потерянных пакетов.

Мне не удалось выяснить, как сказать AQ, чтобы играть в буфер «прямо сейчас». Моим обходным путем является просто сброс AQ, когда я обнаруживаю упавший пакет. Это не идеально, но работает пока.

Andrew

+2

У меня есть аналогичная проблема, можете ли вы предоставить дополнительную информацию. – Amitg2k12