Воспроизведение YouTube HTML5 встроенного видео в Android WebView - PullRequest
26 голосов
/ 12 июня 2011

У меня проблема с запуском HTML5 Youtube, встроенного в WebView .Я хочу воспроизвести на своем видео ролик с YouTube.Я решил использовать WebView вместо VideoView, потому что я хочу сделать свою систему более гибкой для воспроизведения видео из Интернета.

Хотя Есть много способов заставить играть YouTube на Android, но я буду использовать встроенную YouTubeверсия.«http://www.youtube.com/embed/___________________". Потому что это одно из тех решений, которые я нашел, когда ваш андроид не поддерживает flash.

Проблема:

WebView загружается как обычно, включая встроенный Youtube. Но при запуске у меня появляется черный экран на YouTube.

Когда я нажимаю на него, загружается только первое изображение, но затем оно не воспроизводится. Iпытался играть на браузере Android, он работает гладко, но не в веб-просмотра.

Есть идеи, почему?

Ниже приведен лишь фрагмент моего кода:

WebView wv = new WebView(getApplicationContext());
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html");
setContentView(wv);

Вот некоторые из ресурсов, которые я нашел очень полезными:

Заранее благодарим за любую поддержку и помощь:)


Обновление (13 июня 2011 г.):

Я успешно загрузил http://m.youtube.com внутри WebView, но не могу воспроизвести любое видео.Но когда я попытался загрузить URL-адрес в моем браузере Android, он может воспроизводиться.

Отсюда я замечаю, что сайт YouTube из моего WebView не зарегистрирован. Итак, как мы можем разрешить WebView использоватьте же учетные данные, что и моя учетная запись Youtube в моем телефоне?Будет ли это на самом деле работает?

Ответы [ 3 ]

6 голосов
/ 06 июня 2013

Шаг 1 : просто добавьте это в файл манифеста

android:hardwareAccelerated="true"

шаг 2 : проверьте, устанавливаете ли вы слой для веб-просмотра.

(т.е.). //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

установка аппаратного ускорения на true и комментирование этих строк работали для меня.

Чтобы узнать больше об аппаратном ускорении и слоях, посмотрите здесь http://developer.android.com/guide/topics/graphics/hardware-accel.html

5 голосов
/ 12 июня 2011

EDIT

Итак, из комментария разговора мы вычли:

На этом веб-сайте: www.youtube.com/html5 написано, что вы должны войти в систему и включить воспроизведение видео в формате HTML5

Именно поэтому ваше видео не загружается, оно перенаправляется на флэш-версию, а ваше веб-представление не имеет флэш-памяти.

ORIGINAL

Вы переопределяете загрузку URL-адреса, чтобы использовать ваше веб-представление?

 wv.setWebViewClient(new WebViewClient(){
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                            return false;
                    }
            });

Вы говорите, что видео не будет воспроизводиться, но сайт загружается?

Вы можете попробовать обмануть YouTube и сказать им, что вы используете другой браузер (возможно, притворяется браузером Android). Firefox:

 wv.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36");
0 голосов
/ 01 февраля 2013

Как включить HTML5 в Android WebView, недостаточно документировано.Вы можете попробовать мои HTML5WebView и мои старые слайды

...