問題は、player.currentItem.status が を返すAVPlayerStatusReadyToPlay
前に、player.status が完全な 2 秒を返す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]);
}