Как я могу запустить видео на YouTube, чтобы пользователь не касался самого UIWebView? - PullRequest
5 голосов
/ 01 апреля 2011

Мы разрабатываем приложение, которое содержит TableView с некоторыми стандартными ячейками, а также список видео YouTube. Мы знаем, как встроить видеоданные YouTube в UIWebView и воспроизводить их, когда пользователь касается их. Но чтобы сделать это, пользователи должны прикоснуться к UIWebView.

Поскольку это TableView, каждая ячейка представляет собой типичную ячейку с миниатюрой слева, некоторой информацией и дополнительной кнопкой справа. Мы хотим, чтобы пользователи касались где угодно в ячейке, а не только WebView (didSelectRow), чтобы видео начиналось.

Как мы можем этого достичь?

  1. Мы думали о том, чтобы включить WebView на didSelectRow, внедрить данные HTML и показать их в полноэкранном режиме, но таким образом пользователям потребуется еще раз прикоснуться к кнопке воспроизведения, чтобы воспроизвести видео, не так ли?
  2. Можно ли вместо этого использовать MPMoviePlayerController, указав в качестве URL-адреса запроса путь flv видео? (любой API предложил?)
  3. Последний будет имитировать прикосновение внутри WebView, чтобы запустить видео, даже если пользователь не коснулся UIWebView. Возможно ли это?
  4. Любые другие предложения?

1 Ответ

9 голосов
/ 01 апреля 2011

Отвечаю сам.Я нашел решение.Этот код будет автоматически воспроизводить веб-просмотр.

 - (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 на iPhone Safari или UIWebView

Надеюсь, это поможет кому-то еще.

...