Воспроизведение звуковых образцов на iPhone - PullRequest
0 голосов
/ 03 апреля 2009

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

У меня вопрос, каков наилучший способ воспроизведения сэмплов на iPhone с учетом этих критериев?

1 Ответ

2 голосов
/ 03 апреля 2009

Это пример кода, который я использую:

1-й вариант:

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

SystemSoundID topClick;

И в мой файл .m я загружаю звук (aiff-файл):

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

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

AudioServicesPlaySystemSound(topClick);

2-й вариант:

Вы также можете использовать 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];

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

...