2010-02-18 4 views
14

В моем приложении для Android у меня есть WebView для отображения html-данных с нашего сайта. Иногда страница будет иметь объекты для встраивания youtube. Это не отображается правильно в приложении. Есть ли способ показать/воспроизвести видео на YouTube в WebView? Благодарю.play youtube video в WebView

+0

Я ответил, как настроить WebView встраивать и воспроизводить YouTube видео здесь: http://stackoverflow.com/a/12850816/223440 –

ответ

8

Вы не можете показать их встроенными, за исключением, возможно, устройств, имеющих Flash.

Однако, если вы можете проанализировать информацию о видео YouTube, вы можете создать ACTION_VIEWIntent, который покажет их в приложении YouTube ... для тех устройств Android, на которых установлено приложение YouTube.

Вы также можете поэкспериментировать с тегом HTML5 <video>, который поддерживается AFAIK в приложении Browser и поэтому может работать в WebView.

+0

спасибо Марк, я собираюсь с началом нового намерения на YouTube URL-адрес. –

+3

Я пробовал использовать HTML5 без успеха. Браузер загружает «предварительный просмотр» видео, но не играет никакой функции воспроизведения. – Raykud

2

Вы можете попробовать переключить свой веб-сайт, чтобы вставить HTML5 version of the YouTube player вместо флеш-версии. Все еще не уверен, что это будет работать на 100%, но очевидно, что он будет работать лучше, чем версия флэш-памяти на устройствах, которые в настоящее время не поддерживают флэш-память.

Редактирование: Непонятно, что версия HTML5 также требует, чтобы браузер поддерживал кодек H.264, который не похож на поддерживаемые в настоящее время Android-устройства.

+0

Спасибо за ваше редактирование, необходимо, чтобы информация: D – Warpzit

4

Читайте мой пост на группу андроида-разработчиков здесь: YouTube in the emulator?

В принципе, лучший способ играть клипы с YouTube должны создать свою собственную активность для него, и вот отличный пример: Polish Your App: Free Embeddable Android YouTube Activity!

UPDATE : Исправлены проблемы с несовместимостью из-за изменений токена YouTube. Последняя версия компонента должна отлично работать для публичных видеороликов YouTube.

+0

Спасибо Феликс, я посмотрел на пользовательский плеер, но решил против него. Причина в том, что плеер по умолчанию имеет больше функций, таких как закладка, в главном и т. Д., Которые не будут доступны на пользовательском проигрывателе. Кроме того, пользователь по умолчанию более знаком с пользователем. –

+0

выглядел как именно то, что мне было нужно, но, похоже, оно сломано, изменение безопасности youtube, и теперь он не может найти видео. – schwiz

6
webView.setWebViewClient(new WebViewClient() 
{ 
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
    // YouTube video link 
    if (url.startsWith("vnd.youtube:")) 
    { 
    int n = url.indexOf("?"); 
    if (n > 0) 
    { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n))); 
    } 
    return (true); 
    } 

    return (false); 
} 
}); 

Вы WebView (WebView) отправит Вам сообщение shouldOverrideUrlLoading с URL, который выглядит следующим образом:

vnd.youtube:{VIDEO_ID}?{PARMS}

Разобрать это, чтобы преобразовать его до http://www.youtube.com/v/ {VIDEO_ID}, затем передайте этот пересмотренный URL как намерение.

Работы для меня ...

+0

Как я не получаю это событие, когда я нажимаю видеоизображение? Моя ссылка выглядит так: