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

时间:2011-04-01 07:37:08

标签: iphone uiwebview youtube mpmovieplayercontroller

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

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

我们如何实现这一目标?

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

1 个答案:

答案 0 :(得分: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];
}

Youtube video autoplay on iPhone's Safari or UIWebView

希望它可以帮助别人。