Вы можете найти пример, который использует этот кольцевой буфер, если вы загрузите пример кода книги Learning Core Audio здесь (под загрузка вкладка).Перейти к примеру из главы 8 в папке с именем CH08_AUGraphInput.
Однако, если вы просто читаете аудио из файла, то использование (дополнительного) кольцевого буфера кажется излишним. Кольцевой буфер пригодитсякогда у вас есть вход и выход в реальном времени (или почти в реальном времени) (см. главу 8 в упомянутой книге для более подробного объяснения, когда необходим кольцевой буфер). Обратите внимание, что пример в главе 8 о воспроизведении аудио сразу послезапись на микрофон, а это не то, что вы хотите делать).
Причина, по которой я сказал дополнительный кольцевой буфер, заключается в том, что в ядре Audio уже есть аудио-очередь (которую можно рассматривать как кольцевой буфер ... или, по крайней мере, в вашем случае она заменяет необходимостькольцевой буфер: вы заполняете его данными, он воспроизводит данные, а затем запускает обратный вызов, который сообщает вам, что введенные вами данные были воспроизведены).Apple документация предлагает хорошее объяснение этого.
В вашем случае, если вы просто читаете аудио из файла, вы можете легко контролировать пропускную способность аудио из файла.,Вы можете приостановить его, например, заблокировав поток, который читает данные из аудиофайла.
Простой пример того, о чем я говорю, см. В этом примере , который я создал на github.Более подробный пример см. В знаменитом примере Мэтта Галлахера .
.