2012-05-24 17 views

risposta

11

Se si desidera riprodurre un suono breve (meno di 30 secondi), si può fare facilmente in questo modo:

Nota: Dovrete per aggiungere quadro AudioToolbox e importarlo (#import <AudioToolbox/AudioToolbox.h>)

SystemSoundID mySSID; 

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

AudioServicesPlaySystemSound(mySSID); 

si noti inoltre che il file può essere:

  • Non più di 30 secondi di durata
  • In PCM lineare o IMA4 formato (IMA/ADPCM)
  • Confezionato in un .caf, Aif, o file wav
+0

Grande !! Ma è possibile riprodurre alcuni suoni di sistema? Non voglio caricare niente di nuovo ... Qualcosa come il suono del pulsante di avvio di iPhone I – Radislav

+0

Non ne sono sicuro ... Anche se so per certo che puoi usare il "suono" del sistema _ vibrazione. Se trovo qualcosa ti farò sapere. – Alladinian

+0

+1 per una soluzione migliore per suoni di sistema brevi –

3

È necessario utilizzare AVAudioPlayer.

C'è un ottimo tutorial here sull'utilizzo di AVAudioPlayer per riprodurre suoni. Un esempio molto semplice del suo utilizzo:

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

Great !! Ma è possibile riprodurre alcuni suoni di sistema? Non voglio caricare nulla di nuovo ... Qualcosa di simile al suono del pulsante di avvio di 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]; 
Problemi correlati