Мне нужно воспроизведение звука с такими функциями: хорошая производительность (для игры), контроль высоты тона и возможность накладывать один и тот же сэмпл несколько раз одновременно (полифония). Как быстро получить это на iphone sdk?
Вот что я выяснил:
Нет доступных библиотек или примеров кода, которые бы это делали, покажите мне, пожалуйста, не так.
SoundEngine.cpp (из примеров кода CrashLanding и TouchFighter) использует OpenAL и позволяет управлять высотой тона, но каждый раз при запуске буфера, если тот же самый буфер воспроизводится, его точка воспроизведения возвращается в начало.
Одно грязное решение для получения полифонии с помощью SoundEngine.cpp, не углубляясь в его реализацию (что для меня непонятно), - это загрузить несколько буферов для одного и того же звукового файла. Допустим, мне нужна полифония с максимум 4 голосами на звук, а затем я загружаю 4 буфера для одного и того же файла. Мне просто нужно было бы все это обернуть в класс менеджера. Безопасно ли идти по этому пути? И / или есть способ сделать SoundEngine.cpp полифоническим?





FMOD (www.fmod.org) предоставляет все эти возможности. Ознакомьтесь с их образцами виртуальных голосов на предмет полифонии и эффекта DSP смещения высоты тона в документации.
Я просто клиент, не связанный с ними иным образом.
SoundEngine от CrashLanding - беспорядок, я бы держался от него подальше. Написать то, что вы хотите с помощью OpenAL, несложно, это несколько часов работы. Вы можете заглянуть в Зяблик или Cocos 2D звук egine.
Спасибо, у меня не было времени опробовать его, но возможности впечатляют ... Довольны ли вы реализацией iphone?