5

The issue is that player.status returns AVPlayerStatusReadyToPlay a full 2 seconds before player.currentItem.status returns AVPlayerItemStatusReadyToPlay. Does anyone have any helpful explanations as to why this is happening?
This is just sample code to show the basic idea of what's happening so if there are any typos or whatever please ignore them.

- (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]);
}
Ankur
  • 5,086
  • 19
  • 37
  • 62
SteveB
  • 652
  • 3
  • 12
  • Hmmm... no answers. There also seems to be an arbitrary delay between calling [player play] and actually hearing audio; and this is after either or both Status' say they are ready. I can only imagine that these are just bugs/quirks of AVPlayer and that's why there is no real explanation as to what is happening...? – SteveB May 25 '11 at 15:07
  • were you able to figure this out? I'm experiencing a similar issue here http://stackoverflow.com/questions/13977805/avplayer-skips-the-beginning-of-a-video and I think it might be related – GingerBreadMane Dec 21 '12 at 06:28
  • Never found an answer. I'll take a look at your question though. – SteveB Dec 21 '12 at 16:16

1 Answers1

4

In our experience building Ultravisual the AVPlayerStatus and AVPlayerItemStatus are only kind of related to each other, and often depend on async states -- ie, the implementations tend to be heavily multithreaded, and are often buggy or poorly defined.

We found AVPlayerItemStatus to be the most reliable indicator of actually really ready to play, but there were some gotchas especially when dealing with AVQueuePlayer or AVPlayerItems built from AVMutableComposition instances.

damian
  • 3,604
  • 1
  • 27
  • 46