问题是玩家状态返回AVPlayerStatusReadyToPlay
在player.currentItem.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]);
}
根据我们构建 Ultravis 的经验AVPlayerStatus
and AVPlayerItemStatus
只是kind of彼此相关,并且通常依赖于异步状态——即,实现往往是严重多线程的,并且经常有错误或定义不明确。
我们发现AVPlayerItemStatus
成为最可靠的指标实际上真的准备好玩了,但是有一些问题,特别是在处理时AVQueuePlayer
or AVPlayerItem
是由AVMutableComposition
实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)