Видео в WebView работает только на первом сеансе - PullRequest
1 голос
/ 26 марта 2019

У меня есть приложение для Android и экран с веб-просмотром, который содержит видео в формате html, например:

String content = "...<script data-cfasync="false" defer type="text/javascript" src="https://..."></script>..."

и установите этот код для WebView:

webView.loadDataWithBaseURL("", content, "text/html", "UTF-8", "");

На первом сеансе, когда я пытаюсь посмотреть видео в WebView - все в порядке. Но если я перезагружаю свое приложение (во второй или следующей сессии), я вижу только экран видео, но он не воспроизводится, и я не могу воспроизвести его с помощью кнопки воспроизведения на видео. Почему?

Я пытаюсь отключить или включить кеш для веб-просмотра, пытаюсь отключить или включить хранилище dom - мне ничего не помогает. Также эта проблема возникает не на всех устройствах, но на разных версиях Android (например, на Android 6, Android 8, но на некоторых устройствах с этими версиями все в порядке). Также, если на проблемных устройствах я очищаю данные приложения в настройках (очистить все данные, не очистить кеш), видео снова работает.

Ответы [ 3 ]

0 голосов
/ 08 апреля 2019

мне это помогло:

webView.getSettings().setMediaPlaybackRequiresUserGesture(false);

0 голосов
/ 29 апреля 2019

Возможно, это связано с ошибкой в 73.0.3683.90 выпуске Chrome.Обновление Chrome до V74 должно решить проблему.

0 голосов
/ 04 апреля 2019

Я думаю, что эта проблема произошла в Chrome версии 73. Поэтому у меня есть хитрость для временного исправления, установите этот код для WebView:

     String tempUserAgent = webView
          .getSettings()
          .getUserAgentString()
          .substring(0, webView.getSettings()
                        .getUserAgentString()
                        .indexOf("AppleWebKit"));
     webView.getSettings()
          .setUserAgentString(tempUserAgent + "AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/72.0.3626.121 Safari/537.36");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...