AVPlayerStatus 与 AVPlayerItemStatus

2024-03-22

问题是玩家状态返回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(使用前将#替换为@)

AVPlayerStatus 与 AVPlayerItemStatus 的相关文章

随机推荐