簡體   English   中英

在 AVPLayerViewController 中添加活動指示器? (注意:當視頻處於全屏模式時)

[英]Add activity indicator in AVPLayerViewController ? (Note: When video is in fullscreen mode)

在此處輸入圖像描述如何在全屏模式下在 AVPLayerViewController 的中心添加活動指示器?

您可以通過在主鍵窗口上添加自定義視圖,在 AVPLayerViewController 的中心添加自定義指示器視圖。

UIApplication.shared.keyWindow?.addSubview(your custom indicator view)

您可以如下設置自定義指標視圖的中心。

activity.center = CGPoint.init(x: UIScreen.main.bounds.size.width/2.0, y: UIScreen.main.bounds.height/2.0)

當用戶按下播放按鈕時添加此代碼

if(playerViewController.view.subviews.count != 0)
{
  UIView *AVTouchIgnoringView = playerViewController.view.subviews[0].subviews.lastObject;
  activityIndicatorBuffer.center = playerViewController.view.center;
  [AVTouchIgnoringView addSubview:activityIndicatorView];
  [AVTouchIgnoringView bringSubviewToFront:activityIndicatorView];
}

並且不要忘記添加以下方法

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [playerViewController addObserver:self forKeyPath:@"videoBounds" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}
-(void)viewDidDisappear:(BOOL)animated
{
     [super viewDidDisappear:animated];
     [playerViewController removeObserver:self forKeyPath:@"videoBounds"];
}
-(void)observeValueForKeyPath:(NSString )keyPath ofObject:(id)object change:(NSDictionary )change context:(void *)context
{
     if ([keyPath isEqualToString:@"videoBounds"])
     {
        float height = playerViewController.contentOverlayView.bounds.size.height;
        float width = playerViewController.contentOverlayView.bounds.size.width;
        if (height == SCREEN_HEIGHT && width == SCREEN_WIDTH)
        {
            activityIndicatorBuffer.center = playerViewController.contentOverlayView.center;
        }
        else
        {
            activityIndicatorBuffer.center = playerViewController.view.center;    
        }
     }
}

並且不要忘記在緩沖時開始動畫。 單擊此處此鏈接檢查 AVPlayer 是否正在緩沖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM