播放短音效

时间:2012-01-31 15:57:05

标签: iphone objective-c ios5 avfoundation

为了防止任何发泄,我可能会很想知道这里的人们一直在使用(代码片段明智)在他们的应用程序中播放短小音频效果?现在我正在开发一个严格的iOS 5 ARC项目,我之前的方法被禁止并抛出错误。

那么如何使用iOS 5和Objective-C在他们的应用中播放一个小的1秒音频文件呢?

感谢任何积极贡献的人!

编辑:以下是使用ARC和iOS 5发送错误的代码

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

2 个答案:

答案 0 :(得分:2)

尝试将__bridge_retained更改为__bridge,ARC消息应该消失。

我相信AVAudioPlayer更高级别并且具有更大的内存占用,因此对于播放短音而言,它可能是滞后的并且使用的内存比必要的多。见Multimedia Programming Guide: using Audio

答案 1 :(得分:1)

这是我正在使用的代码段:

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

...

[alarmSoundPlayer play];