Самый удобный способ воспроизведения звука в iOS-играх?
Я делаю игру и хочу иметь фоновый цикл игровой музыки, а поверх нее есть два разных канала звуковых эффектов. Я хотел бы контролировать объем этих каналов. Я посмотрел на fmod, но это было вне моего бюджета. Теперь вместо этого я смотрю пример MixerHostAudio, предоставленный Apple. Это наглядный пример, но немного затянутый, состоящий из 1000 строк, просто для воспроизведения двух звуков, поэтому мне интересно, если я должен что-то делать вместо этого.
Мой идеальный API будет выглядеть примерно так:
SoundSystem *sounds = [SoundSystem soundSystemWithLoop:@"koto.mp3"];
[sounds play:@"chimes.mp3" channel:1 looping:YES volume:0.0];
[sounds fadeTo:1.0 channel:1 delay:0.5];
[sounds play:@"buddha_bell.mp3" channel:2];
Ответы
Ответ 1
Вы можете использовать AVAudioPlayer для фонового цикла и Finch для SFX. Оба легко работать. Вы должны написать регулятор громкости канала выше Finch самостоятельно, но это также не сложно, просто массив звуков с общим регулятором громкости.
Ответ 2
CocosDenshion Sound Engine делает все.
тривиально использовать, как только вы получите его в своем проекте.
CocosDenshion является звуковой частью Cocos2D.
Я лично лично не забочусь о Cocos2D (хотя, конечно, многие любят его и используют).
Однако CocosDenshion для звука делает все, что вам нужно без проблем. Да, он работает как с петлями BG, так и с SFX. Он управляет всей памятью и т.д.
Легко использовать CocosDenshion (просто скопируйте несколько файлов в свой проект) - не проблема. (Вам не нужно обманывать всю ситуацию Cocos2D... вы просто устанавливаете только раздел Denshion.)
Надеюсь, что это поможет!
Ответ 3
Я использую SoundMaster движок. Это намного лучше, чем CocosDension Sound Engine, из-за поддержки ARC, управления памятью и многих других функций, таких как fade in/out или относительные объемы для эффектов.