У меня есть приложение, которое помещает пакеты в AudioQueue, и оно отлично работает. Проблема в том, что у меня задержка в сети, и я не могу своевременно передавать пакеты в AudioQueue.IOS AudioQueue не играет, когда пакеты очереди в очереди
Все приложение работает хорошо, и enqueueBuffer не возвращает никаких ошибок, но AudioQueue отбрасывает пакеты (поэтому у меня нет звука), потому что они слишком стары.
Могу ли я заставить AudioQueue воспроизводить эти аудиопакеты ?, или, по крайней мере, знать, что пакеты отбрасываются ?. Потому что, если я это знаю, я могу сделать Pause-Play, чтобы перезапустить очередь ... (не очень хорошее решение, но у меня нет ничего лучшего)
Поскольку задержка может быть очень большой, я не могу использовать большой буфер, поскольку это minimice ошибку, но не решить ее
большое спасибо
Большое спасибо. Это очень полезная информация. Было бы здорово, если бы я мог заставить играть все пакеты (не отбрасывая вообще). Но, по крайней мере, это хорошая идея. – WotG
Приостановка очереди не приведет к отбрасыванию пакетов. Audio Queue поддерживает внутреннюю временную шкалу (которую вы можете получить с помощью «AudioQueueGetCurrentTime:»), которая продолжает продвигаться даже в отсутствие любых воспроизводимых пакетов. Когда вы вставляете буфер с пакетами старше текущего времени, эти пакеты отбрасываются. Приостановка очереди также приостанавливает временную шкалу, поэтому, если вы приостанавливаете работу перед запуском пакетов, возобновите воспроизведение после получения пакетов с задержкой, эти пакеты не будут считаться старыми и будут воспроизведены правильно. – RobHsieh