Ciao a tutti da Vanni. Oggi vi propongo un breve tutorial su come implementare suoni al tocco nelle nostre applicazioni iPhone! Partiamo subito con la nostra guida. Innanzitutto importiamo il framework necessario per la riproduzione dei suoni di sistema AudioToolbox.framework ( bisogna specificare però che nonostante si parli di suoni di sistema non ce ne viene messo a disposizione nemmeno uno, e sarà quindi necessario crearseli da soli )

Importiamo il framework e dichiariamo il metodo che useremo per avviare il suono nel file di intestazione .h:
#import
@interface PlaySoundViewController : UIViewController {
}
-(IBAction) avviaSuono:(id)sender;
@end
Trasciniamo quindi, all’interno di “Resources”, in “Groups & Files” il file audio, nel nostro caso .wav, che desideriamo far suonare, facendo attenzione a mettere la spunta, se non presente, su “Copy items into destination group’s folder (if needed)”:

Passiamo ora al file di implementazione .m e aggiungiamo il framework:
#import "PlaySoundViewController.h"
#import
@implementation PlaySoundViewController
...
Definiamo quindi l’azione che associeremo successivamente al pulsante che creeremo tra poco con Interface Builder:
-(IBAction)avviaSuono:(id)sender{
CFBundleRef mainBundle= CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle,
(CFStringRef) @"Ok", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}
Apriamo Interface Builder per disegnare la nostra semplicissima interfaccia grafica. Per far ciò, facciamo doppio clisk sul file .xib. Trasciniamo quindi un UIButton nella nostra View come mostrato in figura:

Colleghiamo quindi il pulsante all’azione:
Ricordiamoci di selezionare “Touch Up Inside” al rilascio del mouse:

Con l’interfaccia e il tutorial abbiamo conlcuso. Possiamo quindi salvare e chiudere Interface Builder. Torniamo in Xcode, e clicchiamo su “Build and Go”, per testare la nostra applicazione sul simulatore o direttamente sul nostro dispositivo. Ci basterà cliccare sul nostro pulsante per poter ascoltare il suono caricato! Ovviamente potrete usare nelle vostre applicazioni tutti i suoni che vorrete, associati ad ogni tipo di evento 😉
Vi lasciamo con uno screenshot dell’applicazione in esecuzione e con il link per il download del progetto completo.

Alla Prossima
Ciao
Vanni
19 Responses to “T#036 – Come implementare suoni nelle nostre applicazioni iPhone”
23 Aprile 2010
Mokka77Quello che cercavo grazie!!
24 Aprile 2010
RagazzettoPrego !
24 Aprile 2010
2° Articolo ! « Ragazzetto Project[…] — Lascia un commento aprile 24, 2010 Se richiesta del buon Rino ecco il mio secondo articolo su devApp […]
25 Aprile 2010
LezalgorSono commosso… non sai quanto mi serviva 🙂 grazie mille
26 Aprile 2010
RagazzettoGrazie !
Mi fa piacere serva a qualcuno !
😉
28 Aprile 2010
Giovambattista FazioliVedi anche Audio Framework
30 Aprile 2010
Marcociao a tutti ragazzi! prima di tutto vi faccio i complimenti peri il meraviglioso sito che avete creato!! mi sta aiutando un sacco nella programmazione (ho iniziato da poco); complimenti a tutto lo staff.
Io avrei un problema, ho creato un applicazione utilizzando questo framework, sul simulatore funziona ma se la installo sull’iphone (ho pagato 99 dollari e ho preso i certificati) l’applicazione parte ma se premo il pulsante non si sente niente. Ho provato anche ad installare il vostro progetto ma niente da fare!! secondo voi da cosa può dipendere
30 Aprile 2010
RagazzettoQuindi sul simulatore si sente il suono ma sull iphone niente ?
Domanda stupida : non avrai mica il dispositivo con lo switch sulla posizione “silenzioso” o il volume a 0 ?
Lo so che è una supposizione stupida , ma controlla !
A me nella mie app il metodo funziona !
1 Maggio 2010
Marconono ho il volume tutto alto e lo switch su suoneria! XD
comunque nel simulatore funziona tutto alla perfezione!
i file sono .mp3, vanno bene?
grazie per l’aiuto
PS: non vorrei che dipendesse dal fatto che avevo installato l’sdk beta (per la 4.0) ma poi ci ho reinstallato sopra la 3.2; magari a creato un po di confusione
3 Maggio 2010
RagazzettoAllora prova a mettere file .wav invece che mp3 e riprova !
Poi per il discorso della beta 4.0 non ti saprei dire , io per ora non la stò usando !
Sicuramente era meglio se la 4.0 beta la installavi in un altra cartella !
16 Giugno 2010
marcoma se voglio fare 4 pulsanti per eseguire 4 suini diversi come faccio???
14 Luglio 2010
PiermarioCiao a tutti, mi unisco all’ultima domanda di marco, se volessi implementare 2 o più suoni diversi nella stessa view cosa dovrei fare? Grazie in anticipo e complimenti.
25 Agosto 2010
andreagrazie infinite per questa guida….però volevo chiedervi…come faccio a far partire un suono premendo e se lascio si spenge??
2 Febbraio 2011
pipesifSalve mi associo anche io alle domande precedenti… in particolare volevo capire se è proprio necessario caricare i suoni tramite file o è possibile in qualche modo generarli/manipolarli in xcode..
17 Marzo 2011
K3kkoGrandissimi come sempre, sono un pò noob ma non riesco ad associare piu pulsanti a più suoni
21 Marzo 2011
BarochCiao, io invece ho un problema che mi sta facendo sclerare… Praticamente ho un mp3 che fà da sottofondo a tutta l’app… ho messo questo codice nell’appdelegate didFinishLaunchingWithOptions:
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@”song” ofType:@”mp3″];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: soundFilePath] error:nil];
[player setVolume:0.5];
[player setNumberOfLoops:-1]; //Qualsiasi numero negativo setta il loop infinito
[player prepareToPlay];
[player play];
e funziona. Adesso il mio problema. Ho una sezione opzioni (opzioni.h, opzioni.m e opzioni.xib) in cui ho messo una slider per modificare il volume. ora credo di aver provato di tutto ma il volume non si modifica nemmeno a piangere, avete qualche idea/ soluzione? grazie mille
Chiara
13 Settembre 2011
kenesesteper Baroch, potresti spiegarmi meglio i passaggi da fare per mettere la musica di sottofondo che parte da sola ? grazie mille
12 Dicembre 2011
albertoCon la storyboard non funziona più
1 Febbraio 2012
Fabriziosi può avere una guida aggiornata a xcode 4.2?
Grazie