2012-08-03 15 views
8

Durante l'utilizzo di MPMoviePlayerController c'è un modo per trovare la percentuale di dati terminata durante il buffering del video?MPMoviePlayerController% di dati buffati

Il mio obiettivo è mostrare la barra di avanzamento che mostra la percentuale caricata e mostra il suo conteggio numerico di percentuale.

Grazie in anticipo.

risposta

6

Avete controllato la documentazione Apple per il MPMoviePlayerController?

http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html

Qui trovi due proprietà che potrebbero aiutarvi. duration e playableDuration, non è una misura esatta, ma piuttosto vicino. Una cosa che dovrai implementare tu stesso è un modo per interrogare in modo intelligente queste proprietà, ad esempio forse potresti voler usare un NSTimer e recuperare le informazioni dall'istanza MPMovePlayerController ogni 0,5 secondi.

Per esempio si supponga di avere una proprietà chiamata myPlayer di tipo MPMoviePlayerController, si avvia nel vostro metodo init del controller della vista, ecc ...

poi seguita da questo:

self.checkStatusTimer = [NSTimer timerWithTimeInterval:0.5 
               target:self 
               selector:@selector(updateProgressUI) 
               userInfo:nil 
               repeats:YES]; 

E un metodo come questo per aggiornare l'interfaccia utente:

- (void)updateProgressUI{ 
    if(self.myPlayer.duration == self.myPlayer.playableDuration){ 
     // all done 
     [self.checkStatusTimer invalidate]; 
    } 
    int percentage = roundf((myPlayer.playableDuration/myPlayer.duration)*100); 
    self.progressLabel.text = [NSString stringWithFormat:@"%d%%", percentage]; 
} 

Nota la percentuale doppia segno nella nostra -stringWithFormat , questo è un altro identificatore di formato da risolvere in un segno %. Per ulteriori informazioni sugli specificatori di formato see here.

+0

Potrebbe darmi qualche codice di esempio? Sono analfabeta con questa roba. Spero che tu non ti disturbi. –

+0

Ho aggiornato la risposta per fornire un esempio – Daniel

+0

Hai daniel, ho visto la tua risposta e penso che funzioni bene. sfortunatamente sto usando un file di classe che sta facendo alcuni problemi ora per provare questo codice. Comunque grazie per il tuo impegno e gentilezza. –

Problemi correlati