DevTutorial #19 – AVPlayer: come riprodurre semplicemente file audio!
| 08-08-2009
Categorie: DevTutorial, iPhone SDK
2
Con il firmware 2.2 Apple ha introdotto una classe davvero molto importante e potente, che permette di riprodurre una grande varietà di file audio all’interno delle proprie applicazioni. Tale classe è AVAudioPlayer e in questo tutorial vedremo come utilizzarla, creando un nostro rudimentale player audio.
Andremo a realizzare un’applicazione composta da due pulsanti, uno per avviare la riproduzione di un file audio, l’altro per fermare la riproduzione stessa. Il tutto è molto semplice, però potrà darvi gli strumenti necessari per utilizzare questa classe anche nelle vostre applicazioni! Buona programmazione allora!
1. Creiamo un nuovo progetto
Iniziamo come sempre creando un nuovo progetto di tipo “View-Based Application” e chiamiamolo “AVPlayerTutorial”.
Iniziamo definendo le due azioni che il nostro player musicale potrà eseguire, ovvero avviare e fermare la riproduzione di un brano. Apriamo, quindi, il file “AVPlayerTutorialViewController.h” e definiamo questi due metodi:
Salviamo il file appena modificato e andiamo a creare la struttura grafica della nostra applicazione.
2. Definiamo l’interfaccia grafica
Facciamo doppio clic sul file “AVPlayerTutorialViewController.xib”, si aprirà Interface Builder in cui andremo a definire l’interfaccia grafica. Dobbiamo semplicemente inserire due bottoni, uno per avviare la riproduzione (un classico “Play”) e uno per fermarla (un “Pause”). Ecco come appare la mia applicazione (molto spartana oserei dire
):
Ora dobbiamo collegare le due azioni che abbiamo definito in precedenza. Dal Pannello dei Documenti (“Tools -> Reveal in Document Window”) selezioniamo il “File’s Owner” e apriamo poi il “Connections Inspector”. Colleghiamo l’azione “avviaSuono” con il primo bottone, mentre “fermaSuono” con il secondo. Ecco come appare il pannello dopo aver eseguito i collegamenti:
Abbiamo già terminato con questa parte, possiamo salvare tutto e chiudere Interface Builder.
3. Definiamo la classe
Torniamo al file “AVPlayerTutorialViewController.h” e completiamo la definizione della classe nella seguente maniera:
Abbiamo definito un componente “player”, che sarà l’oggetto che si occuperà di leggere il nostro file e di riprodurlo, il tutto in grande semplicità, vista la potenza e la versatilità di questo componente.
Potete notare, inoltre, che abbiamo definito anche il delegato <AVAudioPlayerDelegate>, che ci fornirà dei metodi molto importanti.
Prima di definirne le azioni, dobbiamo inserire nel nostro progetto il framework necessario. Espandete la sezione “Targets” nel progetto, e cliccate con il tasto destro su “AVPlayerTutorial”, selezionando poi “Get Info”. Si aprirà una nuova schermata, in cui dobbiamo andare nella sezione “General”. Nell’angolo in basso a sinistra noteremo un bottone “+”, clicchiamo e si aprirà
un elenco di tutti i framework disponibili:
Selezioniamo “AVFoundation.framework” e clicchiamo su “Add”. Avremo così aggiunto il framework necessario. Possiamo chiudere la schermata delle proprietà e tornare al codice.
Prima di definire le azioni, inserite un file audio nel vostro progetto, semplicemente trascinandolo in XCode. Questo sarà il file che il nostro player andrà a riprodurre.
4. Definiamo le azioni
Ora dobbiamo implementare le due azioni, “avviaSuono” e “fermaSuono” del nostro lettore. Iniziamo inserendo il seguente codice nel file “AVPlayerTutorialViewController.m”:
Analizziamo il codice appena scritto, iniziando dal metodo “avviaSuono”. Troviamo subito un “if”, che controlla se il file non è già stato avviato: in tal caso esegue delle istruzioni che andremo poi ad esaminare, altimenti chiama il metodo play della classe AVAudioPlayer (che riproduce appunto il file audio).
All’interno del ciclo if, troviamo la dichiarazione e l’inizializzazione del file da riprodurre: con le prime due istruzioni ricaviamo il percorso del nostro file (che ovviamente deve essere inserito all’interno del nostro progetto), poi inizializziamo l’oggetto “player”. Prima di poterlo riprodurre, testiamo la variabile “err”, che ci riporta eventuali errori nella fase di inizializzazione (ad esempio relativo al file audio non trovato). Se non c’è stato nessun errore, viene riprodotto il file tramite l’istruzione [player play].
Il secondo metodo, “fermaSuono”, si occupa di mettere in pausa la riproduzione del file, richiamando il metodo “pause” sempre dell’oggetto “player”.
Ora non ci resta che implementare alcuni metodi richiesti dal delegato “AVAudioPlayerDelegate”. Ecco il codice da inserire:
Questi metodi servono per sapere quando la riproduzione viene interrotta oppure per comunicare eventuali errori nella decodifica del file.
Clicchiamo ora su “Build and Go!” e testiamo il nostro personalissimo player audio!!
Se Avete Problemi, questo è il nostro file di progetto.
La guida è stata creata da Andrea Busi per “Bubi Devs”, prendendo spunto da questo guida: “Playing Audio Files using the iPhone SDK“. I meriti, quindi, sono del legittimo autore.
1.046 visite












[...] DevTutorial #19 – AVPlayer: come riprodurre semplicemente file audio! sabato 8 agosto 2009 | Tratto da: http://www.bubidevs.net/ [...]
Ciao, per prima cosa complimenti per i tutorial, in particolare questo. Si può seguire lo stesso tutorial anche per i video, in modo da implementarli dentro una view con il pulsante avvia e ferma?