Встраивание видео из vimeo в Android WebView - PullRequest
3 голосов
/ 31 января 2012

Я недавно создал мобильный веб-сайт, на котором есть несколько встроенных iframe из Vimeo.Теперь в браузере Android с Flash это работает довольно хорошо, но когда я пытаюсь встроить его в WebView для псевдо-приложения, видео не воспроизводится.Я прочитал много тем по этому вопросу, и вот код, который я получил до сих пор:

WebView wv = (WebView) findViewById(R.id.webview);
wv.getSettings().setJavaScriptEnabled(true);

if (Build.VERSION.SDK_INT < 8) {
    wv.getSettings().setPluginsEnabled(true);
} else {
    wv.getSettings().setPluginState(PluginState.ON);
}
wv.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    });
wv.loadUrl("myurl.here");

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

Все кадры видеокадров, которые я пытаюсь воспроизвести, выглядят так: <iframe src='http://player.vimeo.com/video/<VIDEO ID HERE>?title=0&byline=0&portrait=0' width='100%' height='auto' frameborder='0'></iframe>

Я также попытался включитьаппаратное ускорение для приложения, но это вызывает совершенно новую проблему.После запуска приложения это все, что показывает (проверено на Galaxy Nexus): http://i.imgur.com/bnonm.png

Flash установлен на телефоне, и загрузка веб-страницы в обычном режиме через браузер работает нормально.

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

ОБНОВЛЕНИЕ: Заимствовал планшет Xoom под управлением Android 3.2, видео воспроизводится нормально с включенным аппаратным ускорением.Я все еще получаю странную вещь рендеринга на нексусе, так что это не решает проблему полностью.

1 Ответ

0 голосов
/ 26 марта 2017

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

Вы должны добавить этот код перед загрузкой WebView:

wv.setWebChromeClient(new WebChromeClient() {
});

Пример использования:

WebView wv;

wv.setWebChromeClient(new WebChromeClient() {
});

wv.loadUrl("http://www.example.com/");

И убедитесь, что вы включили:

android:hardwareAccelerated="true"

в тег <manifest> файла AndroidManifest.xml (относится только к API 11 или выше)

...