Попытка автовоспроизведения видео YouTube в приложении PhoneGap / Cordova

Я разрабатываю приложение, используя PhoneGap . Итак, это веб-приложение. В этом приложении у меня есть требование встроить видео YouTube и автоматически запускать его, когда пользователь переходит к этой конкретной странице.

Я читал, что автовоспроизведение видео HTML5 не работает на мобильных устройствах из-за ограничений пропускной способности. Мой вопрос в том, что есть ли вообще способ обойти это ограничение? Я не против сложных обходных решений или хаков, которые могли бы позволить мне сделать это. Вообще ничего.

Благодарю.

Как вы указали сами, все инструкции автовоспроизведения в вашем коде будут игнорироваться при загрузке. Поэтому мы реализуем функцию, которая получает видео в теле и начинает его воспроизводить.

Следующий код javascript мог бы сделать это:

(function() { document.getElementsByTagName('video')[0].play(); })() 

Чтобы выполнить этот код после загрузки страницы, нам нужно установить WebViewClient и реализовать onPageFinished ()

 webview.setWebViewClient(new CordovaWebViewClient(this, webview) { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } }); final WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setPluginState(WebSettings.PluginState.ON); 

Полный пример :

  webview = new CordovaWebView(this); setContentView(webview); final WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setPluginState(WebSettings.PluginState.ON); webview.setWebViewClient(new CordovaWebViewClient() { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } }); webview.loadUrl("http://html5demos.com/video"); 

Существует плагин cordova / phonegap, который обещает сделать это. Он полагается на метод Webview setMediaPlaybackRequiresUserGesture , добавленный в API уровня 17 (Android 4.2).

Он просто вызывает этот метод в веб-просмотре:

 WebView view = getWebViewFromPlugin(); view.getSettings().setMediaPlaybackRequiresUserGesture(false); 

Он также доступен в сборке phongap .

Intereting Posts
Загрузчик не вызывается при изменении ориентации экрана Невозможно обновить список виджетов Android в onPostExecute Android: Как вручную добавить файл в apk? Какая версия библиотеки поддержки установлена ​​в моей студии Android Защитить папку Asset / Media через Auth Controller? Laravel 5.2 Как создать динамическую модель лица пользователя в Android? Android как загрузить файл изображения 1mb и установить в ImageView Разработка специального приложения для связи с устройством, которое подключается через порт USB на Android Как использовать установщик пакетов по умолчанию (Android) при попытке установить APK из другого приложения? Ошибка XML при добавлении Google Analytics в мое приложение Как получить ключ API Google Адресов для моего приложения для Android Дата форматирования Android с часовым поясом Почему, ресурсы в android превращаются в HEXA-DECIMAL внутри R.java Изменить маржу макета с помощью XML в Layer-List Как правильно отображать вкладки (пробелы), поступающие из базы данных MySQL, как в Android, так и в приложении IOS?