Проблема в том, что player.status возвращает AVPlayerStatusReadyToPlay
за полные 2 секунды до того, как player.currentItem.status возвращает AVPlayerItemStatusReadyToPlay
. У кого-нибудь есть полезные объяснения, почему это происходит?
Это просто пример кода, чтобы показать основную идею того, что происходит, поэтому, если есть какие-либо опечатки или что-то еще, пожалуйста, игнорируйте их.
- (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]);
}