Con questo nuovo tutorial di programmazione iPhone rispondiamo ad una richiesta di un nostro utente (fatta tramite il nostro forum), che ci chiede come poter mostrare un video durante il caricamento della sua applicazione. Una sorta di splashsreen video se vogliamo. All’avvio del nostro piccolo programma, quindi, partirà un video, che importeremo all’interno del progetto, direttamente nel player predefinito iPhone. Al termine verrà aperta in automatico la nostra vista principale. Se vogliamo possiamo anche decidere di interrompere a nostro piacimento l’esecuzione del filmato tramite l’apposito tasto del player. Il tutorial è molto semplice e di fatto non faremo altro che scrivere un po’ di codice nel metodo “viewDidLoad” con l’aggiunta di qualche piccolo accorgimento.
Prepariamo il nostro nuovo progetto Xcode
Apriamo Xcode, creiamo un nuovo progetto e dall’elenco de template disponibili scegliamo “View-based Application”. Diamo un nome alla nostra App, ad esempio “VideoSplash”, decidiamo dove salvare e proseguiamo.
Per prima cosa dobbiamo importare il framework: MediaPlayer. Per farlo clicchiamo col pulsante destro del mouse su “Frameworks” dentro “Groups & Files”, quindi su “Add” e successivamente su “Existing Frameworks…”. Si aprirà una finestrella come quella mostrata nell’immagine seguente:
Selezioniamo quindi MediaPlayer.framework e premiamo su “Add”.
Scriviamo un po’ di codice
Per completare correttamente l’importazione del framework, e poter sfruttare quindi quanto ha da offrire, dobbiamo includerlo da qualche parte. Apriamo il file “VideoSplashViewController.h” e aggiungiamo la seguente riga di codice subito sotto l’import dell’UIKit, quindi salviamo:
#import
Aggiungiamo ora un filmato al nostro progetto, nel nostro caso “filmato.m4v”, trascinandolo semplicemente nella cartella “Resources” e facendo attenzione di mettere la spunta su “Copy items into destination group’s folder (if needed)” in modo tale che venga di fatto copiato il file nella cartella del progetto.
Apriamo quindi “VideoSplashViewController.m”. Scommentiamo il metodo “viewDidLoad” e modifichiamolo come segue:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *resourcePath = [[NSBundle mainBundle]pathForResource:@"filmato" ofType:@"m4v"];
NSURL *link = [NSURL fileURLWithPath:resourcePath];
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL:link];
[movie setBackgroundColor:[UIColor blackColor]];
[movie setScalingMode:MPMovieScalingModeAspectFit];
[movie play];
}
E’ tutto! Non abbiamo altro da fare. Di seguito due screenshot del programma in azione.
Alla prossima 😉
30 Responses to “T#054 – Mostrare un video durante l’avvio delle nostre applicazioni iPhone”
19 Giugno 2010
RagazzettoVeramente molto molto interessante !
Mi ero sempre chiesto come si facesse !
19 Giugno 2010
iCoccioInteressante e se volessimo importare un’immagine invece di un video?
19 Giugno 2010
Staff devAPPSe vuoi impostare un’immagine come splashscreen devi semplicemente trascinarne una nel tuo progetto di nome “Default” e formato PNG. Attenzione alla “D” maiuscola.
Deve essere esattamente:
Default.png
19 Giugno 2010
andreac’è un unico problema… fra qualche giorno questo metodo non funzionerà piu… non dovremmo piu usare MPMoviePlayerController ma MPMoviePlayerViewController
:):)
19 Giugno 2010
Staff devAPPvero, ma ancora non possiamo parlarne 😉 Tra qualche giorno aggiorneremo 😛
Personalmente credo che per un po’, anzichè una sostituzione vera e propria, dovremmo utilizzarli entrambi, per questioni di compatibilità delle app con i vari OS esistenti.. o rischieremmo di perdere una più o meno grossa fetta di utenti 😉
20 Giugno 2010
lucaSalve,
volevo capire una cosa:
come mai non seve deallocare MPMoviePlayerController *movie, non si dovrebbe usare “release” da qualche parte, avendo usato initWithContentURL per “crearlo”?
grazie
20 Giugno 2010
lucaps
scusate, volevo dire:
avendo usato “alloc”
21 Giugno 2010
bernardissimoSalve a tutti volevo chiedere una cosa:
Quando avvio l’App automaticamente l’iPhone si mette in orizzontale e parte il video.
Ve volessi vederlo in Verticale come devo fare??
21 Giugno 2010
iCiccioGrazie della dritta, ma una domanda e se volessi che la Default.png si visualizzata per qualche secondo in più com potrei fare?
22 Giugno 2010
DanielCiao a tutti,
volevo inserire la video splash su TAB BAR come devo fare???……ho trovato il vostro tutorial per la view base application ma non per la tab bar, dovevo finire un applicativo e se possibile ricevere notizie 🙁 urgenti.
grazie in anticipo
22 Giugno 2010
Staff devAPPIn realtà apple sconsiglia quanto chiedi, però se proprio vuoi farlo qui trovi una nostra guida:
http://www.devapp.it/wordpress/tag/durata-splash-screen
22 Giugno 2010
Staff devAPP@luca La gestione della memoria è sempre importante, anche quando non lo specifichiamo direttamente e concentriamo le attenzioni su altri aspetti 😉
22 Giugno 2010
Staff devAPPPer questo faremo un tutorial nei prossimi giorni 😉
22 Giugno 2010
DanielAvevo chiesto un consiglio urgente, avete risposto a tutti e me no 🙁
grazie
22 Giugno 2010
iPhone MenCiao volevo chiedevi due cosine :
– Come faccio ad inserire una video splash in una tab bar application?
– NON riesco a cancellare la Default.png che ho inserito nonostante abbia cancellato l’immagine da xcode…..che faccio???
grazie
22 Giugno 2010
Mokka77@Daniel @iPhone Men avete provato a fare quando descritto in questo tutorial mettendo il codice nel viewDidLoad del vostro primo View Controller?
@iPhone Men cosa intendi che non riesci a cancellarla, nonostante tu l’abbia cancellata? O.o l’hai cancellata o no? XD
23 Giugno 2010
RagazzettoProva a cliccare su ” clean all target ” nel menù build e facci sapere !
23 Giugno 2010
iPhone MenA RAGAZZETTO :
SEI UN GRANDE GRAZIE MILLE……ho imparato una cosa nuova molto utile 🙂
Grazie ancora
23 Giugno 2010
iPhone MenA RAGAZETTO 🙂 se non ti disturbo troppo volevo chiederti un altra cosina :
Ho inserito in una tab bar una tabella, l’ho personalizzata come volevo, ma non riesco a personalizzare lo sfondo ( nn della cella) ma della tabella……..volevo eliminare lo sfondo grigio a righe di default ed inserire magari un immagine….come faccio?
Grazie in anticipo.
26 Giugno 2010
Staff devAPPhttp://www.devapp.it/wordpress/t058-avviare-e-visualizzare-un-video-in-modalita-verticale-portrait.html
9 Luglio 2010
iPhone MenCiao ragazzi,
ho problemi a far partire il video, ho scaricato IPHONE SDK 4.0 ed il video non parte si sente solo la musica.
COME POSSO RISOLVERE????…..
Grazie
19 Luglio 2010
iPhone4sarebbe possibile aggiornare questa guida per iOS 4?
25 Luglio 2010
darioMi associo alle richieste precedenti.
Se fosse possibile fare una guida identica per iOS4 ve ne saremo grati.
Grazie mille e buon lavoro.
11 Aprile 2011
SpartanNon funziona più ?
12 Aprile 2011
barbygirlanche a me si sente solo la voce ma non si vede nulla, mi aiutate a capire per favore?
14 Aprile 2011
gaciao anche da me non si vede nulla…qualcuno può darci qualche consiglio?
ciao a tutti e complimenti per tutto!!!
5 Settembre 2011
menon funziona + questo metodo …
utilizzate qualcosa di simile a questo … :
http://stackoverflow.com/questions/5464022/how-to-add-video-to-app
in viewdidappear e non in viewdidload … 🙂
20 Settembre 2011
RagazzettoGrazie mille !!!!
Questo si che funziona !!!!
30 Gennaio 2012
RobertoHo aggiunto la framework, il file ed il codice, ma non funzione e continua a darmi:
Undefined symbols for architecture i386:
“_OBJC_CLASS_$_MPMoviePlayerController”, referenced from:
objc-class-ref in ViewController.o
“_MPMoviePlayerPlaybackDidFinishNotification”, referenced from:
-[ViewController viewDidAppear:] in ViewController.o
Sapete dirmi perché?
30 Gennaio 2012
RobertoScusatemi! Ho capito solo ora che con il simulatore non funziona.