Веб-просмотр Android не может отображать видео в YouTube с помощью iframe

Речь идет о загрузке видеороликов YouTube с использованием последнего встроенного формата (iframe) внутри webview.

Пример формата вставки iframe

 

Проверьте код на устройствах Android 2.3.3 и 3.2 (HTC Desire & Asus Transformer), веб-просмотр будет показывать только черный прямоугольник.

Я пробовал аналогичную вставку из vimeo

  

В 2.3 видео воспроизводится правильно
В 3.2 черный прямоугольник вспыхнул и исчез, область iframe пуста.

Наконец, если используется старый формат вставки (с использованием тега объекта), видео отображается правильно внутри webview в 2.3.3 и 3.2.

Я проверил связанные вопросы и добавил

 android:hardwareAccelerated="true" 

в теге приложения и / или активности, но по-прежнему нет видео в обоих устройствах 2.3 и 3.2.

Это большая проблема, потому что больше веб-сайтов теперь использует новейший формат (iframe) для встраивания своих видео в YouTube. Android / Youtube Team, пожалуйста, взгляните на эту проблему.

6 Solutions collect form web for “Веб-просмотр Android не может отображать видео в YouTube с помощью iframe”

Android-браузеры абсолютно бесполезны, что происходит с воспроизведением видео и вложением. Он просто не работает через устройства. Попытка заставить его работать – это просто трата вашего времени. Мое предложение состоит в том, что вы не пытаетесь включить а просто предоставляете миниатюру видео, которое напрямую ссылается на страницу YouTube или файл h264.

Предыдущее обсуждение с возможным решением.

Оптимизация WebViews на Android в Google Reader-esque

Если вы хотите воспроизводить видео в своем WebView вам НЕОБХОДИМО загружать данные базовым URL-адресом!

Не делайте этого:

 mContentWebView.loadDataWithBaseURL(null, webViewContentString, "text/html", "UTF-8", null); 

ДЕЙСТВУЙТЕ ВЕСЬ :

  //veryVeryVery important for playing the videos! mContentWebView.loadDataWithBaseURL(theBaseUrl, webViewConentString, "text/html", "UTF-8", null); 

Базовый URL-адрес будет чем-то вроде «оригинального» URL-адреса того, что вы показываете в своем WebView . Итак, скажем, вы создаете читателя WebView's базовый url WebView's URL-адресом оригинальной истории.

Удачи!

Также не забудьте настроить свой WebView … Так вот …

  mContentWebView.setWebChromeClient(new WebChromeClient()); mContentWebView.getSettings().setPluginState(WebSettings.PluginState.ON); mContentWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); mContentWebView.setWebViewClient(new WebViewClient()); mContentWebView.getSettings().setJavaScriptEnabled(true); 

Вам необходимо включить аппаратное ускорение в манифесте (доступно только на SDK 14 и выше).

Ex. Аппаратное ускорение включено:

   ...  

Поддержка видео HTML5

Чтобы поддерживать встроенный HTML5-видео в вашем приложении, вам необходимо включить аппаратное ускорение и установить WebChromeClient .

http://developer.android.com/reference/android/webkit/WebView.html

(Надеюсь, что это поможет кому-то)

Я бы предложил использовать некоторый код для обнаружения среды пользователя … использовать код iframe только для ios-устройств (iphone, ipod, ipad) и использовать старый код для всех остальных.

Этот код идеально подходит для разных устройств

 webView.setInitialScale(1); webView.setWebChromeClient(new WebChromeClient()); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setPluginState(WebSettings.PluginState.ON); webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); webView.setWebViewClient(new WebViewClient()); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; int width = displaymetrics.widthPixels; Log.e(SimpleBillsConstants.SIMPLE_BILLS, width + "-" + height); String data_html = "< !DOCTYPE html>         "; webView.loadDataWithBaseURL("http://vimeo.com", data_html, "text/html", "UTF-8", null); 

Это сработало для меня – код открывает сайт YouTube и может воспроизводить его видео в WebView:

 mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); String frameVideo = "Youtube video .. 
"; mWebView.loadData(frameVideo, "text/html", "utf-8"); mWebView.loadUrl("http://www.youtube.com/"); mWebView.setWebViewClient(new WebViewClient());
  • Как работают все эти услуги «Сохранить видео с YouTube»?
  • Как скачать видео с YouTube с субтитрами?
  • Самый простой способ добавить фотографии в MP3-аудио саундтрек
  • Как играть на YouTube на tvOS
  • Как я могу извлечь аудио из видео YouTube?
  • Приложение YouTube для Android Play Video Intent
  • YouTube нет звука, но VLC имеет звук
  • Как остановить людей от загрузки онлайн-видео для офлайн-воспроизведения?
  • как поделиться видео с моего сайта на facebook, как youtube
  • Блокировка приложения YouTube на YouTube с маршрутизатора
  • YouTube Iframe встроить автоматическую игру
  • Interesting Posts

    форматирование строки в формате валюты в отчете jasper

    Могу ли я сделать этот макрос более эффективным или быстрым?

    Любые инструменты для удаления программного обеспечения, которое невозможно удалить с панели управления

    Невозможно решить метод setLatestEventInfo

    Вставить веб-браузер в Java-приложение

    Android Как реализовать нижний лист из документации по материальному дизайну

    Как связать расширение .exe с программой в Windows?

    Является ли мой MAC-адрес общедоступным при просмотре Интернета?

    Как получить текущий URL-адрес вкладки для расширения chrome?

    Как устранить неполадки, когда я не знаю, с чего начать?

    Почему мои друзья получили спам из моей электронной почты?

    Инициализаторы модhive в C #

    Как работает отказоустойчивый процесс Hadoop Namenode?

    Как read.table () несколько файлов в одну таблицу в R?

    Проблема при загрузке vmware fusion 3.0

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