2012-01-31 164 views
3

爲了避免發泄任何我可能有我很想知道這裏周圍的人已經使用(代碼段明智)在其應用程序中播放短小音頻效果?現在我正在嚴格處理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

代碼爲您的以前的方法,請! – ZhangChn 2012-01-31 16:12:46

+0

NSString * soundPath = [[NSBundle mainBundle] pathForResource:@「swoosh」ofType:@「caf」]; SystemSoundID聲音; 聲音;音頻服務創建系統聲音ID((__ bridge_retained CFURLRef)[NSURL fileURLWithPath:soundPath],&sound); AudioServicesPlaySystemSound(sound); – Brayden 2012-01-31 16:39:12

回答

2

嘗試改變__bridge_retained只是__bridge和ARC消息應該消失。

我相信AVAudioPlayer是更高的水平,並有更大的內存佔用,因此播放短的聲音可能會滯後,並使用更多的內存不必要的。請參閱Multimedia Programming Guide: using Audio

1

代碼這是我使用的代碼片段:

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

... 

[alarmSoundPlayer play];