在 AVPlayerViewController tvos 视图中添加活动指示器

Posted

技术标签:

【中文标题】在 AVPlayerViewController tvos 视图中添加活动指示器【英文标题】:Adding Activity Indicator in view of AVPlayerViewController tvos 【发布时间】:2016-05-25 13:27:31 【问题描述】:

我正在开发 Apple TV 应用程序。它是一个视频应用程序,用户从网格中选择视频并开始在 AVPlayerviewController 中播放,对于某些视频,它开始显示活动指示器(默认情况下)并显示搜索栏,然后开始播放。对于一些需要时间加载的冗长视频,它会显示一个黑屏,这违反了用户体验。

我浏览了 Netflix 并看到了,它在启动 VideoPlayer 页面时会显示一个活动指示器。我什至可以添加一个活动指示器,但是不知道委托函数在哪里,我将关闭它。

谁能告诉我添加/关闭活动指示器的过程?

【问题讨论】:

【参考方案1】:

您可以添加观察者来检查您的播放器项目的状态,当它准备好播放时,您可以删除活动指示器。

[playerItem addObserver:self
                      forKeyPath:kStatusKey
                         options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
                         context:AVPlayerStatusObservationContext];


- (void)observeValueForKeyPath:(NSString*) path
                      ofObject:(id)object
                        change:(NSDictionary*)change
                       context:(void*)context

    if (context == AVPlayerStatusObservationContext)
    
        AVPlayerStatus status = [[change objectForKey:NSKeyValueChangeNewKey] integerValue];
        if (status == AVPlayerStatusReadyToPlay) 
            // remove activity indicator and play video

        


【讨论】:

但由于互联网连接速度慢,有时它会与我的活动指示器和默认指示器重叠。如何解决此问题。

以上是关于在 AVPlayerViewController tvos 视图中添加活动指示器的主要内容,如果未能解决你的问题,请参考以下文章

iOS:AVPlayerViewController 视图未删除

在 AVPlayerViewController 中点击播放按钮时执行操作

如何在 SwiftUI 中呈现全屏 AVPlayerViewController

如何在 UITableViewCell 上正确显示一个 AVPlayerViewController?

如何在解雇后停止播放 AVPlayerViewController 作为 UIViewRepresentable?

如何拦截在AVPlayerViewController中点击完成按钮?