1

從MPMoviePlayer遷移到AVkit給我帶來了阻塞問題。帶定製覆蓋的AVPlayerViewController

我需要在AVPlayerViewController上顯示一個自定義tableView。 我可以這樣實現代碼如下低谷

[self.avVideoPlayer.contentOverlayView addsubiew:self.mycustomTableView] 

,它是可見的,但它並沒有收到任何點擊/滑動事件。

任何想法,爲什麼會發生這種情況,或者我怎麼能在即使在全屏模式下它會接收觸摸事件的地方添加桌面視圖?

回答

0
[self.view addSubview:btn]; 

這將在最小化的播放器中添加按鈕。

現在你需要添加一個觀察員videoBounds全屏場景,這裏是我的代碼:

[self.avVideoPlayer addObserver:self forKeyPath:@"videoBounds" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL]; 

現在,這裏是不是這麼漂亮的一部分:

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

NSLog(@"SOME OBSERVER DID THIS: %@ , %@",object,change); 
if ([self playerIsFullscreen]) { 
    for(UIWindow* tempWindow in [[UIApplication sharedApplication]windows]){ 
     for(UIView* tempView in [tempWindow subviews]){ 

      if ([[tempView description] rangeOfString:@"UIInputSetContainerView"].location != NSNotFound){ 
       UIButton *testB = [[UIButton alloc] initWithFrame: CGRectMake(20, 20, 400, 400)]; 
       testB.backgroundColor = [UIColor redColor]; 
       [testB addTarget:self action:@selector(buttonTouch) forControlEvents:UIControlEventTouchDown]; 
       [tempView addSubview:testB]; 

       break; 
      } 
     } 
    } 
} 
} 

我知道這是不是一個很好的方式來做到這一點,但它是唯一的方法,我添加了一些自定義用戶界面,也可以在播放器上接收觸摸事件。

乾杯!