2012-10-01 12 views
8

Nella mia app l'istanza di MPMoviePlayerController ho creato inizia come una scatola nera, simile a questo (perché il video inizia black out e sfuma in):MPMoviePlayerController partendo immagine

enter image description here

tuttavia mi hanno Envisioning qualcosa di più user-friendly come questo, una miniatura con, come nell'esempio qui sotto:

enter image description here

questo è un mockup che ho creato, ma i video nella camerale il rotolo e i video inviati nell'app Messaggi usano quella freccia. Quale classe devo implementare per utilizzare la freccia di gioco iOS di serie?

risposta

6

Questo appare come qualcosa per il metodo di MPMoviePlayerControllerthumbnailImageAtTime:timeOption:, si dovrebbe passare nel tempo si desidera recuperare una miniatura e utilizzare l'immagine per visualizzare un UIImageView sulla parte superiore del video.

Una volta creata la miniatura, creare UIImageView e impostare l'immagine sulla miniatura e assicurarsi di impostare userInteractionsEnabled su YES. Assicurati di impostare la cornice di questa vista immagine per coprire il lettore di film.

Ora è possibile creare un UITapGestureRecognizer nella vista dell'immagine che attiverà un metodo. Questo metodo quindi richiama il metodo play dell'oggetto MPMoviePlayerController.

-(void)viewDidLoad{ 
    [...] 

    UIImage *thumbnail = [moviePlayer thumbnailImageAtTime:5.0 
               timeOption:MPMovieTimeOptionNearestKeyFrame]; 

    UIImageView *iv = [[UIImageView alloc] initWithImage:thumbnail]; 
    iv.userInteractionEnabled = YES; 
    iv.frame = moviePlayer.frame; 
    [self.view addSubview:iv]; 
    [iv release]; 

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
    tap.numberOfTapsRequired = 1; 
    [iv addGestureRecognizer:tap]; 
    [tap release]; 

    [...] 
} 


- (void)handleTap:(UITapGestureRecognizer *)gesture{ 
    iv.hidden = YES; 
    [moviePlayer play]; 
} 

Si prega di notare se si desidera che il pulsante di riproduzione poi fare un pulsante di riproduzione in Photoshop, e aggiungere questo in cima alla vista miniatura, collegare il sistema di riconoscimento gesto a quella visualizzazione dell'immagine e assicurarsi che si nasconde entrambe le viste di immagini quando inizi a riprodurre il tuo video.

È possibile utilizzare un UIButton altrimenti con l'immagine impostata sull'immagine di riproduzione, quindi non è necessario un UIGestureRecognizer.

+0

Che dire della freccia di gioco? È mostrato su 'UIImageView'? Inoltre, come impostare 'UIImageView' per abilitare le interazioni dell'utente come hai menzionato? – inorganik

+0

Sì, nel tuo caso lo è. La tua immagine di anteprima non è la stessa. – Daniel

+0

Non hai ancora risposto alla mia domanda. Come faccio a ottenere la freccia di gioco di cui ho dato un esempio, né hai menzionato come è possibile "impostare la visualizzazione dell'immagine per abilitare le interazioni dell'utente". Tutto il metodo di anteprima fa catturare un'immagine, ho un'immagine, non è questo il problema. Per favore riprova. – inorganik

0

Cosa ne pensi di utilizzare un UIButton? Può avere una bella immagine di sfondo, cliccarci sopra e spostarla dietro il lettore di film o rimuovere il pulsante anche. Così semplice da aggiungere anche nel codice

Problemi correlati