如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?

发布于 2024-10-29 03:43:52 字数 537 浏览 0 评论 0原文

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

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

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

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

We're developing an app which contains a TableView with some standard cells, but also a list of YouTube videos. We know how to embed the YouTube video data into a UIWebView and play it when the user touches it. But in order to do that, users must touch the UIWebView.

Since it's a TableView, every cell is the typical cell with the thumbnail on the left, some info and an accessory button on the right. We want to let users touch anywhere in the cell, not just the WebView (didSelectRow) so the video would start.

How can we achieve this?

  1. We've thought of enabling a WebView at didSelectRow, embed the HTML data and show it fullscreen, but with this way users would need to touch once again into the play button to play the video, am I right?
  2. Would it be possible to use MPMoviePlayerController instead, setting as the request URL the flv path of the video? (any api suggested?)
  3. The last one would be simulating the touch inside the WebView so it would start the video, even if the user hasn't touched the UIWebView. Is it possible?
  4. Any other suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必了 2024-11-05 03:43:52

回答我自己。我找到了解决方案。此代码将自动播放网络视图。

 - (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];
}

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

希望它对某人有帮助别的。

Answering myself. I've found the solution. This code will autoplay the 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

Hope it helps somebody else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文