2011-05-24 7 views
5

La cuestión es que player.status vuelve AVPlayerStatusReadyToPlay un total de 2 segundos antes de player.currentItem.status vuelve AVPlayerItemStatusReadyToPlay. ¿Alguien tiene alguna explicación útil sobre por qué está sucediendo esto?
Esto es solo un código de muestra para mostrar la idea básica de lo que está pasando, de modo que si hay algún error tipográfico o algo así, ignórelo.AVPlayerStatus vs AVPlayerItemStatus

- (void) someMethod 
{  
    player = [[AVPlayer alloc] initWithURL:someValidURL]; 
    [player play]; 

    NSTimer *timer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(checkStatus:) userInfo:nil repeats:YES]; 
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 
} 

- (void) checkStatus: (NSTimer *)timer 
{ 
    NSLog(@"player status: %i", player.status]); 
    NSLog(@"player item status: %i", player.currentItem.status]); 
} 
+0

Hmmm ... no hay respuestas. También parece haber una demora arbitraria entre llamar [reproducir jugador] y escuchar audio; y esto es después de que uno o ambos Estatus dicen que están listos. Solo puedo imaginar que estos son solo errores/peculiaridades de AVPlayer y que por eso no hay una explicación real de lo que está sucediendo ...? – SteveB

+0

¿Pudo resolver esto? Estoy experimentando un problema similar aquí http://stackoverflow.com/questions/13977805/avplayer-skips-the-beginning-of-a-video y creo que podría estar relacionado – GingerBreadMane

+0

Nunca encontré una respuesta. Aunque echaré un vistazo a tu pregunta. – SteveB

Respuesta

2

En nuestra experiencia en la construcción Ultravisual la AVPlayerStatus y AVPlayerItemStatus sólo son tipo de relacionados entre sí, y con frecuencia dependen de estados asíncronas - es decir, las implementaciones tienden a ser fuertemente multiproceso, y son a menudo buggy o Poco definido.

Encontramos AVPlayerItemStatus ser el indicador más fiable de realmente muy listo para jugar, pero había también algunas precauciones, especialmente cuando se trata de AVQueuePlayer o AVPlayerItem s construidos a partir de AVMutableComposition casos.

Cuestiones relacionadas