Встраивание YouTube iframe не может автоматически запускаться на Android

Я использую webView в своем приложении для Android, чтобы загрузить проигрыватель YouTube iframe и автовоспроизведение видео. Он отлично работает на Samsung Galaxy S2 и S3, но когда он работает на Samsung Galaxy S4, он всегда приводит к серому экрану при попытке автоматического воспроизведения.

В Galaxy S4 он отлично работает без автовоспроизведения, требует действия пользователя (щелчок), чтобы начать играть (Ничего не произошло, если добавить "autoplay: 1" в playerVars).

Я попытался вызвать player.playVideo() в onPlayerReady(), это привело к этому серому экрану:

enter image description here

LogCat также показывает странное сообщение об ошибке:

E/IMGSRV(17004): :0: GetPTLAFormat: Invalid format

когда не удалось выполнить автозапуск. Я не знаю, о чем идет речь. Я искал его и ничего не нашел.

Вот код Android WebView:

WebView wv = (WebView) findViewById(R.id.webview);
WebSettings websettings = wv.getSettings();
websettings.setJavaScriptEnabled(true);
websettings.setDomStorageEnabled(true);
websettings.setDatabaseEnabled(true);
wv.loadUrl(strUrl);
wv.setWebViewClient(new WebViewClient());
wv.setWebChromeClient(new WebChromeClient());
wv.setPadding(0, 0, 0, 0);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);

Это известная проблема или есть ли какое-либо решение для автовоспроизведения видео? Спасибо!

Ответы

Ответ 1

Я думаю, что отключение автозапуска становится "стандартным".

Кстати, вы можете попробовать this

EDIT:

Когда ссылка мертва, я нашел ее в https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-android:

Как "автовоспроизвести" HTML5-видео на Android
Написано Mathias Desloges в Labs 19/05/11

Вы когда-нибудь пытались играть с новым тегом HTML5 на Android-устройстве?

У нас есть и вот неуклюжий вопрос, с которым мы столкнулись.
Позвольте настроить контекст, мы хотим, чтобы наше видео начало воспроизводиться сразу после завершения загрузки страницы.
Согласно спецификации HTML5, мы должны использовать атрибут" autoplay ", но это не влияет на Android. Поэтому мы попытались с помощью script вызвать функцию воспроизведения после загрузки страницы:

function callback () { document.querySelector('video').play(); } 
window.addEventListener("load", callback, false);

Это хорошо воспроизводит поведение атрибута autoplay на классический настольный браузер, но в браузере Android он терпит неудачу.
мы попытался подключить ранее определенную функцию" callback() "к щелкните событие на произвольном node, и видео начнет хорошо воспроизводиться" на нажмите "(нормальное поведение). И продолжайте работать на странице html кода, мы нашли решение!

Не спрашивайте меня, почему, но после добавления атрибута" плакат" он работает!

Ответ 2

Я считаю, что это является признаком того, что производители ОС становятся все более ограничительными в том, что они не позволяют автовоспроизведению видео из-за проблем с полосой пропускания. Это проблема в iOS в течение некоторого времени, когда любой вызов JavaScript для воспроизведения() завершится неудачей, если пользователь не выполнил какое-либо действие, например, щелчок. Вероятно, это происходит в вашем случае.

Ответ 3

Как ответил здесь Я считаю, что это не просто ограничение автоматической игры, а любые автоматические события. Для меня это был переход страницы в jquerymobile, который был запущен, когда Кордова загрузилась. Я переключил его на срабатывание нажатием кнопки, и это решило проблему.