iOS има различни аудио рамки от по-високо ниво, което ви позволява просто да възпроизведете определен файл, до по-ниско ниво, което ви позволява да получите необработените PCM данни и всичко между тях. За нашето приложение просто трябва да възпроизвеждаме външни файлове (WAV, AIFF, MP3), но трябва да го правим в отговор на натискане на бутон и имаме нужда това забавяне да бъде възможно най-малко. (Това е за чакане на опашка в продукции на живо.)
Сега AVAudioPlayer и подобни работят за възпроизвеждане на прости файлови активи (чрез техния URL адрес), но неговата латентност при действителното стартиране на звука е твърде голяма. При по-големи файлове с дължина над пет минути, закъснението за стартиране на звука може да надхвърли една секунда, което го прави почти безполезен за синхронизиране при изпълнение на живо.
Сега знам, че неща като openAL могат да се използват за възпроизвеждане с много ниска латентност, но тогава сте затънали до кръста в аудио буфери, аудио източници, слушатели и т.н.
Въпреки това, някой знае ли за някакви рамки, които работят на по-високо ниво (т.е. възпроизвеждане на „MyBeddingTrack.mp3“) с много ниска латентност? Предварителното буфериране е добре. Просто спусъкът трябва да е бърз.
Бонус, ако можем да правим неща като задаване на началната и крайната точка на възпроизвеждането във файла, или да променим силата на звука, или дори да извършим заглушаване и т.н.