2012-05-24 102 views

回答

11

如果你想玩短音(短於30秒),你可以很容易地做到這一點是這樣的:

注意:你必須添加AudioToolbox框架和導入(#import <AudioToolbox/AudioToolbox.h>

SystemSoundID mySSID; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"beep" ofType:@"wav"]; 
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath: path], &mySSID); 

AudioServicesPlaySystemSound(mySSID); 

還要注意的是,文件可以是:

  • 超過30秒的持續時間
  • 不再線性PCM或IMA4(IMA/ADPCM)格式
  • 在的.caf,.AIF包裝或.wav文件
+0

很棒!但是有可能播放一些系統聲音嗎?我不想上傳anythink新... Somethink像非標準iphone按鈕點擊聲 – Radislav

+0

我不知道這一點......雖然我知道肯定,你可以使用「震動」 _SYSTEM sound_。如果我找到一些我會讓你知道的。 – Alladinian

+0

+1對於短期的系統更好的解決方案聽起來 –

3

您應該使用AVAudioPlayer。

有使用AVAudioPlayer播放聲音一個偉大的教程here。它的一個非常簡單的例子是使用:

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3",dataPath]; 

NSError *error; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 

if (audioPlayer == nil) 
    NSLog([error description]); 
else 
    [audioPlayer play]; 
+0

大!!但是有可能播放一些系統聲音嗎?我不想上傳anythink新... Somethink like standart iphone按鈕點擊聲音 – Radislav

0
NSString *path = [[NSBundle mainBundle] pathForResource:@"gorilla 2" ofType:@"mp3"]; 
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 

theAudio.delegate=self; 
[theAudio play];