2009-04-03 2 views
0

Я дошел до того места, где я хочу сыграть несколько образцов в своей игре/приложении. Мой инстинкт говорит, что использование openAL ... У меня будет ситуация, когда мне нужно будет играть сразу несколько образцов (но не более 2 или 3), и образцы будут короткими (2 или 3 секунды).Воспроизведение звуковых образцов на iPhone

Мой вопрос - это лучший способ игры на iPhone с учетом этих критериев?

ответ

2

Это часть образца кода я использую:

первый вариант:

Я определил это в моем файле .h

SystemSoundID topClick; 

И в моей .m файл I (aiff file):

NSBundle* bundle = [NSBundle mainBundle]; 
NSString *topClickFile = [bundle pathForResource:@"top_click" ofType:@"aiff"]; 

Затем, когда Я хочу играть звук, я использую:

AudioServicesPlaySystemSound(topClick); 

второй вариант:

Вы также можете использовать AVAudioPlayer (доступна с прошивкой 2.2 я думаю):

NSString *graffitiSprayFile = [bundle pathForResource:@"sound_effect" ofType:@"aiff"]; 
AVAudioPlayer* sprayAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:graffitiSprayFile] error:NULL]; 
sprayAudio.delegate = self; 
[sprayAudio prepareToPlay]; 
[sprayAudio setNumberOfLoops:999]; 

Первый опция очень удобна для относительно короткого звукового эффекта.

+1

Только информация - AVAudioPlayer может воспроизводить несколько файлов в формате caf, aiff, wav, но только один mp3 может воспроизводиться одновременно (поэтому не используйте mp3 для игровых эффектов). –

+0

Кроме того, установка количества циклов в -1 сделает повторную выборку навсегда. – Rich

+0

Требуется ли вызов AudioServicesCreateSystemSoundID? – Bill

Смежные вопросы