Автозапуск видео YouTube в UIWebview

Я нашел много вопросов на этом форуме относительно встраивания видео в YouTube и автовоспроизведения, но ни один из них не очистил все мои сомнения.

Я нашел два метода для встраивания видео youtube в UIWebView

1)

NSString *youTubeHTMLTemplate = @"<html><head><style type=\"text/css\">body { background-color: transparent;color: white;}</style></head><body style=\"margin:0\"><embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"%0.0f\" height=\"%0.0f\"></embed></body></html>"; finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, fullYopuTubeUrl, htmlFrameWidth, htmlFrameHeight]; 

2)

 NSString *youTubeHTMLTemplate = @"<html><body style=\"margin:0;padding:0;\"><iframe class=\"youtube-player\" type=\"text/html\" width=\"%f\" height=\"%f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\" allowfullscreen></iframe></body></html>"; finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, htmlFrameWidth, htmlFrameHeight, videoID]; 

Если я использую метод (1) и следую приведенному здесь подходу, мое видео автоматически запускается. Идея заключается в том, чтобы найти кнопку в UIWebView и отправить на нее событие со значком.

Если я использую (2) и следую тому же подходу, видео не запускается автоматически.

Я думаю, что рекомендуется использовать (2) подход, поскольку (1) предназначен только для Flash-видео (справа?).

Возможно ли каким-либо образом (2)? Эта ссылка говорит NO.

Может кто-нибудь подтвердить

  • Если я прав, рекомендую (2)
  • Автовоспроизведение с (2) невозможно.

В. Если я прав, рекомендую (2)

A. Да (2) метод для i-устройств, где нет поддержки вспышки.

В. Автовоспроизведение с (2) невозможно.

О. На данный момент автовоспроизведение невозможно.

Обновление: я могу автоматически воспроизводить видео с YouTube с помощью JS API Youtube, см. https://developers.google.com/youtube/js_api_reference

Просто вызовите playVideo из onPlayerReady

 function onPlayerReady(event) { event.target.playVideo(); } 

Я решил проблему, добавив следующий код:

 webview.mediaPlaybackRequiresUserAction=NO; webview.allowsInlineMediaPlayback=YES; 

Автовоспроизведение возможно путем выпуска:

 webView.mediaPlaybackRequiresUserAction=FALSE; 

Вы также можете использовать этот трюк из ответа endActionsForControlEvents:UIControlEventTouchUpInside Wadhwa, который endActionsForControlEvents:UIControlEventTouchUpInside после завершения UIWebView

  • Событие с отображаемым изменением (Youtube MPMoviePlayerViewController)
  • Большинство видео не получают VideoUrl с YouTube
  • Youtube, встроенный в UIWebView, вызывает сбои в iPad при входе в полноэкранный режим
  • Работает ли GCSVideoView с прямой трансляцией YouTube на 360 градусов?
  • Почему Youtube Video не заполняет UiWebView?
  • Воспроизведение видео YouTube на мобильном сайте без перенаправления на приложение YouTube
  • загружать или передавать видео на Youtube из моего приложения SDK для iOS
  • Встроенный проигрыватель YouTube разбился с gpus_ReturnNotPermittedKillClient на iOS 8
  • Загрузите видео youtube в полноэкранном режиме с помощью кнопки click - iOS
  • Как воспроизводить видео в фоновом режиме с помощью UIWebView на iOS 7
  • Youtube API v3 search.list возвращает нерелевантные видео Swift
  • Interesting Posts

    Двойное восклицание !! отметить в Свифт?

    Сортировка массива в алфавитном порядке в быстром

    Uber logout / login с различными результатами пользователя при показе предыдущего зарегистрированного пользователя на iOS

    RTCVideoCapturer capturerWithDeviceName: (NSString *) становится очень медленным после последующих вызовов

    Ошибки при реализации JSONKit

    Перенос NSPersistentStore из изолированной программной среды приложения в общий групповой контейнер

    Как добавить представления между UICollectionViewCells в UICollectionView?

    Разница между добавлением в цель и добавлением к проекту в XCode

    Использование гибких ячеек iOS 8, изменения высоты ячейки, но текст не обертывается

    Сбой с выпуском NSManagedObject: «objc_msgSend () имя селектора: _queueForDealloc"

    Запланировать низкоприоритетную задачу в основной теме

    Как остановить или отменить выполнение блока отправки

    Soundcloud Stratus Player – кросс-платформенная совместимость

    Подклассификация UICollectionViewCell с пользовательским xib и contentView

    пользовательская ячейка не отображается в виде таблицы

    Давайте будем гением компьютера.