如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?
Posted
技术标签:
【中文标题】如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?【英文标题】:How can I start a YouTube video without the user touching the UIWebView itself? 【发布时间】:2011-07-27 11:53:16 【问题描述】:我们正在开发一个应用,其中包含一个带有一些标准单元格的 TableView,以及一个 YouTube 视频列表。我们知道如何将 YouTube 视频数据嵌入 UIWebView 并在用户触摸时播放。但为了做到这一点,用户必须触摸 UIWebView。
因为它是一个 TableView,所以每个单元格都是典型的单元格,左侧是缩略图,右侧是一些信息和一个辅助按钮。我们想让用户触摸单元格中的任何位置,而不仅仅是 WebView (didSelectRow),以便视频开始播放。
我们怎样才能做到这一点?
-
我们曾考虑在 didSelectRow 中启用 WebView,嵌入 html 数据并全屏显示,但这样用户需要再次触摸播放按钮才能播放视频,对吗?
是否可以改用 MPMoviePlayerController,将视频的 flv 路径设置为请求 URL? (任何 api 建议?)
最后一个是模拟 WebView 内的触摸,因此它会启动视频,即使用户没有触摸 UIWebView。有可能吗?
还有其他建议吗?
【问题讨论】:
【参考方案1】:回答我自己。我找到了解决方案。此代码将自动播放 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
希望它对其他人有所帮助。
【讨论】:
应该的。只要记住委派 webview 以便调用 webViewDidFinishLoad。以上是关于如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?的主要内容,如果未能解决你的问题,请参考以下文章