Самый удобный способ воспроизведения звука в играх iOS? - PullRequest
12 голосов
/ 28 ноября 2010

Я делаю игру и хотел бы иметь фоновую петлю игровой музыки, а поверх нее два разных канала звуковых эффектов.Я хотел бы контролировать громкость этих каналов.Я посмотрел на 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];

Ответы [ 3 ]

12 голосов
/ 28 ноября 2010

CocosDenshion Sound Engine делает все вы хотите.

Это тривиально использовать , как только вы получите его в своем проекте.

CocosDenshion - это звуковая часть Cocos2D.

Мне просто лично пофиг на Cocos2D (хотя, конечно, многим он нравится и пользуется).

Однако CocosDenshion для звука делает все, что вы хотите без проблем. Да, это делает и петли BG и SFX. Он управляет всей памятью и т. Д.

CocosDenshion легко использовать (просто скопируйте несколько файлов в ваш проект) - без проблем. (Вам не нужно дурачиться со всей ситуацией Cocos2D ... вы просто устанавливаете только раздел Denshion.)

Надеюсь, это поможет!

11 голосов
/ 28 ноября 2010

Вы можете использовать AVAudioPlayer для фонового цикла и Finch для SFX.С обоими легко работать.Вам нужно было бы написать регулятор громкости канала над Finch самостоятельно, но это не сложно, просто набор звуков с общим регулятором громкости.

0 голосов
/ 14 августа 2013

Я использую SoundMaster движок.Это намного лучше, чем CocosDension Sound Engine , благодаря поддержке ARC , управлению памятью и многим другим функциям, таким как Fade In / Out или относительные объемы для эффектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...