2012-08-03 7 views
8

Al utilizar MPMoviePlayerController, ¿hay alguna forma de determinar cuánto porcentaje de datos finalizó al almacenar en búfer el video?MPMoviePlayerController% de datos almacenados en búfer

Mi objetivo es mostrar la barra de progreso que muestra cuánto porcentaje se carga y mostrar su conteo numérico de porcentaje.

Gracias de antemano.

Respuesta

6

¿Has consultado la documentación de Apple para el MPMoviePlayerController?

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

Aquí se encuentran dos propiedades que pueden ayudarle. duration y playableDuration, no es un ajuste exacto, pero bastante cerca. Una cosa que deberá implementar usted mismo es una forma de consultar inteligentemente estas propiedades, por ejemplo, quizás desee usar un NSTimer y obtener la información de su instancia MPMovePlayerController cada 0.5 segundos.

Por ejemplo supongamos que tiene una propiedad llamada myPlayer de tipo MPMoviePlayerController, iniciará en el método init del controlador de vista, etc ...

A continuación, seguido por:

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

Y un método como este para actualizar la interfaz de usuario:

- (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 el doble signo de porcentaje en nuestra -stringWithFormat , este es otro especificador de formato para resolverlo con un signo %. Para obtener más información sobre los especificadores de formato see here.

+0

¿Podría darme algún código de ejemplo? Soy analfabeto con estas cosas. Espero que no te molestes. –

+0

Actualicé la respuesta para proporcionar un ejemplo – Daniel

+0

Hai daniel, vi su respuesta y creo que funciona bien. desafortunadamente, estoy usando un archivo de clase que hace algunos problemas ahora para probar este código. De todos modos, gracias por tu esfuerzo y amabilidad. –

Cuestiones relacionadas