如果用户无需触摸UIWebView本身,如何启动YouTube视频?

Yor*_*xxx 5 youtube iphone mpmovieplayercontroller uiwebview

我们正在开发一个应用程序,其中包含带有一些标准单元格的TableView,还有一个YouTube视频列表.我们知道如何将YouTube视频数据嵌入到UIWebView中,并在用户触摸它时播放.但为了做到这一点,用户必须触摸UIWebView.

由于它是一个TableView,因此每个单元格都是典型的单元格,左侧是缩略图,右侧是一些信息和一个附件按钮.我们希望让用户触摸单元格中的任何位置,而不仅仅是WebView(didSelectRow),以便视频开始播放.

我们怎样才能做到这一点?

  1. 我们已经考虑过在didSelectRow上启用WebView,嵌入HTML数据并将其全屏显示,但是通过这种方式,用户需要再次触摸播放按钮来播放视频,对吗?
  2. 是否可以使用MPMoviePlayerController,将请求URL设置为视频的flv路径?(任何api建议?)
  3. 最后一个是模拟WebView内部的触摸,因此它将启动视频,即使用户没有触及UIWebView.可能吗?
  4. 还有其他建议吗?

Yor*_*xxx 9

回答自己.我找到了解决方案.此代码将自动播放webview.

 - (UIButton *)findButtonInView:(UIView *)view {
  UIButton *button = nil;

  if ([view isMemberOfClass:[UIButton class]]) {
    return (UIButton *)view;
  }

  if (view.subviews && [view.subviews count] > 0) {
    for (UIView *subview in view.subviews) {
      button = [self findButtonInView:subview];
      if (button) return button;
    }
  }

  return button;
}

- (void)webViewDidFinishLoad:(UIWebView *)_webView {
  UIButton *b = [self findButtonInView:_webView];
  [b sendActionsForControlEvents:UIControlEventTouchUpInside];
}
Run Code Online (Sandbox Code Playgroud)

iPhone的Safari或UIWebView上的Youtube视频自动播放

希望它能帮助别人.