Воспроизвести короткий аудиоэффект - PullRequest
3 голосов
/ 31 января 2012

Чтобы не допустить какой-либо вентиляции, которая у меня может возникнуть, мне любопытно узнать, что люди здесь используют (мудрый фрагмент кода) для воспроизведения коротких и маленьких звуковых эффектов в своих приложениях? Теперь, когда я работаю над проектом ARC для iOS 5, мой предыдущий метод запрещен и выдает ошибки.

Так как же просто воспроизвести небольшой 1-секундный аудиофайл в своем приложении с iOS 5 и Objective-C?

Спасибо всем, кто вносит позитивный вклад!

РЕДАКТИРОВАТЬ: ниже код, который отправляет ошибки с ARC и iOS 5

NSString *soundPath=[[NSBundle mainBundle] pathForResource:@"swoosh" ofType:@"caf"];
    SystemSoundID sound;
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)[NSURL fileURLWithPath:soundPath],&sound);
    AudioServicesPlaySystemSound(sound);

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Попробуйте изменить __bridge_retained на __bridge, и сообщение ARC должно исчезнуть.

Я считаю, что AVAudioPlayer более высокого уровня и имеет больший объем памяти, поэтому для воспроизведения коротких звуков он может быть медленным и использоватьбольше памяти, чем необходимо.См. Руководство по программированию мультимедиа: использование аудио

1 голос
/ 31 января 2012

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

//alarm sound
self.alarmSoundPlayer = [[AVAudioPlayer alloc] 
    initWithContentsOfURL:[[NSBundle mainBundle] 
                              URLForResource:@"alarm" 
                               withExtension:@"caf"]
                    error:0];

...

[alarmSoundPlayer play];
...