Как играть в видеоролик YouTube в Android WebView?

Я делаю приложение для чтения RSS, и я получаю данные RSS из URL-адреса, а данные RSS могут содержать ссылку на видео YouTube.

Вот пример, как выглядит ссылка на youtube vide:

div class="video-shortcode"><iframe title="YouTube video player" width="600" height="350" src="http://www.youtube.com/embed/HXrcUyCVA6c" frameborder="0" allowfullscreen></iframe></div> 

И когда я запускаю свое приложение, нет видео, все его черное, и я не могу его воспроизвести.

Как я могу воспроизводить видео в WebView?

EDIT: Вот результат:

Введите описание изображения здесь

Вот мой код:

  // set webview properties WebSettings ws = desc.getSettings(); ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); ws.getPluginState(); ws.setPluginState(PluginState.ON); ws.setJavaScriptEnabled(true); ws.setUserAgent(0); ws.setJavaScriptCanOpenWindowsAutomatically(true); desc.setWebChromeClient(new WebChromeClient() { }); desc.loadDataWithBaseURL("http://www.balkanandroid.com/", feed .getItem(pos).getContent(), "text/html", "UTF-8", null); 

У меня Android: hardwareAccelerated = "true" в моем AndroidManifest.xml.

Вероятно, это не бесполезно, но это может быть удобно для будущих людей (Эй, будущие люди).

Но удалите эту строку:

ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

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

ws.setJavaScriptEnabled(true);

Эти две линии вызвали у меня довольно много неприятностей, когда я начинал.

В манифесте android установите android: hardwareAccelerated = "true":

 <application android:icon="@drawable/icon" android:label="@string/app_name" android:hardwareAccelerated="true"> <activity android:name=".Activity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

И в вашем основном задании:

 WebSettings w = webView.getSettings(); w.setPluginState(PluginState.ON); 

Надеюсь, это сработает для вас …. !!!!

Используйте этот код. Его воспроизведение одного видео с помощью web-view.its работает хорошо.

  package com.example.webbiewdemoapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.widget.Button; public class WebviewMainActivityFirst extends Activity { WebView myWebview; Button bw1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_webview_main); myWebview = (WebView) findViewById(R.id.webview1); bw1 = (Button) findViewById(R.id.click_button1); bw1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent1 = new Intent().setClass( WebviewMainActivityFirst.this, WebViewActivitySecond.class); startActivity(intent1); } }); } } // second activity package com.example.webbiewdemoapplication; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; public class WebViewActivitySecond extends Activity { private WebView webView; @SuppressLint("SetJavaScriptEnabled") public void onCreate(Bundle saveState) { super.onCreate(saveState); setContentView(R.layout.activity_main_second); webView = (WebView) findViewById(R.id.webview1); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("https://www.youtube.com/watch?v=68AqHwgk2s8"); // String customHtml = "<html><body><h1>Hello, WebView</h1></body></html>"; // webView.loadData(customHtml, "text/html", "UTF-8"); } } // xml part activity_webview_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/click_button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginLeft="106dp" android:text="Go To WebView" /> </RelativeLayout> activity_main_second.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <WebView android:id="@+id/webview1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>