Android веб-просмотр не может воспроизвести видео файл ошибка - PullRequest
0 голосов
/ 06 мая 2020

На одном из экранов моего приложения я загружаю строку HTML в WebView, но по какой-то причине WebView не может загружать видео в div, контейнер видео показывает ошибку: этот видеофайл не может быть воспроизведено: код ошибки 102003 Это пример загружаемого файла HTML, видео в котором не удается загрузить:

 <html dir="rtl" lang=""><body><meta itemprop="thumbnailUrl" content="https://cdn.jwplayer.com/v2/media/8K9oJcsX/poster.jpg?width=720"/><meta itemprop="contentUrl" content="https://cdn.jwplayer.com/videos/8K9oJcsX-khorc1ya.mp4"/><div style="position:relative; overflow:hidden;"><script src="https://cdn.jwplayer.com/players/8K9oJcsX-4mQgHT7J.js"></script></div></div> <p>تابعي نصائح وأفكار دليل مطبخ سيدتي التي ستساعدك في الحصول على مائدة رمضانية فاخرة ومميزة حتى في أيام الحجر المنزلي.</p></body></html>

Я включил javascript, добавил hardwareAcclerated = true добавлен клиент chrome и все остальное, что предлагается по другим вопросам.

val settings = webview.settings
            settings.domStorageEnabled = true
            settings.javaScriptEnabled = true
            settings.pluginState = WebSettings.PluginState.ON
            webview.webChromeClient = WebChromeClient()
            webview.webViewClient = WebViewClient()

            settings.setDomStorageEnabled(true);
            settings.setAppCacheEnabled(true);
            settings.setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
            settings.setDatabaseEnabled(true);
            settings.setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");

            settings.allowFileAccess = true
            val formattedHtml = "<html dir=\"rtl\" lang=\"\"><body>" + tip.description + "</body></html>"
            webview.loadDataWithBaseURL("", formattedHtml, "text/html", "UTF-8", "")

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Проблема заключалась в том, что отсутствовал базовый URL-адрес, из-за чего JWPlayer (хост видео) выдает ошибку.

Правильный способ сделать это - добавить локальный базовый URL-адрес android_asset

tipInformation.loadDataWithBaseURL("file:///android_asset/", s, "text/html", "UTF-8", null)
0 голосов
/ 06 мая 2020

Просто попробовал URL вашего видео в моем веб-просмотре, и это сработало. Вот мои настройки:

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setMediaPlaybackRequiresUserGesture(false);

Итак, я думаю, вам нужно установить для setMediaPlaybackRequiresUserGesture значение false.

...