Я лично отслеживаю все изменения в сценарии миграции SQL.
AVAudioPlayer очень незначителен для игрового звука. Решение AudioQueue или OpenAL путем адаптации одного из примеров - определенно правильный путь. Таким образом, задержка становится более контролируемой.
Я использую OpenAL и классы, поставляемые с примером кода CrashLanding. Пока что воспроизводить сэмплы и воспроизводить зацикленную музыку можно одновременно. В настоящее время я изучаю, как освободить память, выделенную для звука (файл .wav), когда, например, я хочу воспроизвести вступительную музыку только один раз.
Вы хотите проверить буферизацию с помощью используемой вами реализации? Это может быть как-то связано с задержкой в 20 мс, которую вы испытываете. т.е. попробуйте поиграть с размером буфера.
Используйте CocosDenshion - это бесплатно, просто и работает. Он включает в себя AVAudioPlayer
для фоновых дорожек и OpenAL для звуков.