2012-06-25 3 views
2

Я создал простое демо-приложение, в котором я пытаюсь вставлять видео с YouTube. Вот <object> тег, который я используюAndroid ICS - встроенное видео youtube не работает в полноэкранном режиме

String urlTag = "<object><param name=\"movie\" value=\"http://www.youtube.com/v/opZ69P-0Jbc?version=3&feature=player_detailpage\">" + 
      "<param name=\"allowFullScreen\" value=\"true\"><param name=\"allowScriptAccess\" value=\"always\">" + 
      "<embed style=\"width:100%; height:100%\" src=\"http://www.youtube.com/v/opZ69P-0Jbc?version=3&feature=player_detailpage\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"200\" height=\"300\"></object>"; 

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

Я пробовал вышеупомянутый код на этом site (замените тег объекта). Он работает нормально. Я не ошибаюсь. Благодарю.

UPDATE 1: На @ рекомендации DarkXphenomenon, я узнал, что я получаю эту ошибку:

java.lang.NullPointerException 
android.webkit.PluginFullScreenHolder.show(PluginFullScreenHolder.java:85) 

избавившись от ошибок путем добавления webView.setWebChromeClient(new WebChromeClient());. Ссылка link. Теперь демо не разбивается, но все же он не воспроизводит видео в полноэкранном режиме. Экран исчезнет.

ОБНОВЛЕНИЕ 2: Кроме того, много раз весь встроенный проигрыватель исчезает. При проверке образца WebView ApiDemo я обнаружил, что в этом происходит и то, что происходит. Является ли WebView ошибкой на бутерброде с мороженым?

+1

Logcat должен сообщить вам причину аварии. –

+0

@DarkXphenomenon Было полезно. Проверьте обновление. – FireAndIce

+0

Попробуйте также с URL-адресом m.youtube. –

ответ

0

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

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=xyz"))); 

Кроме того, вы можете настроить свой URL для vnd.youtube:<video_id>?<parameters> Это заставляет видео играть в приложении YouTube.

EDIT: Также убедитесь, что в вашем веб-браузере включены плагины и скрипты.

mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setPluginsEnabled(true); 
+0

Но я не хочу перенаправлять на приложение YouTube, поскольку у меня не было бы контроля над ним. Я хочу это в своем приложении. Перенаправление на приложение YouTube также уменьшит значение приложения перед пользователем. – FireAndIce

+0

В этом случае вы хотите использовать flash-плеер. Включите плагины, как я уже упоминал в EDIT. –

+0

Я уже это сделал. – FireAndIce

Смежные вопросы