为了防止任何发泄,我可能会很想知道这里的人们一直在使用(代码片段明智)在他们的应用程序中播放短小音频效果?现在我正在开发一个严格的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);
答案 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];