2013-07-22 105 views
4

我正在製作RSS閱讀器應用程序,並且我從URL獲取RSS數據,並且RSS數據可以包含YouTube視頻的鏈接。如何在Android WebView中播放YouTube視頻?

下面是一個例子鏈接到YouTube韋迪的樣子:

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中播放視頻?

編輯: 下面是結果:

enter image description here

這裏是我的代碼:

// 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:在我的AndroidManifest.xml中的硬件加速= 「真」。

+0

可能的重複http://stackoverflow.com/questions/17706580/youtube-video-not-playing-in-webview – EvZ

+0

我嘗試添加setWebChromeClient並添加android:hardwareAccelerated =「true」,但它stil沒有工作。 – Zookey

+0

檢查所有代碼示例。你錯過了什麼。 – EvZ

回答

9

大概沒有任何用處的,但它可能爲未來的人們

很方便,但刪除此行:

ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

,並確保啓用javascript

ws.setJavaScriptEnabled(true);

當我剛出場時,這兩條線給我帶來了很多麻煩。

+0

它不工作 – Erum

2

使用此驗證碼。它使用網絡視圖播放一個你管視頻。它運行良好。

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> 
+0

編輯我的問題與更多的細節。 – Zookey

+0

現在不工作。視頻已顯示,但您無法播放它... – KiKo

4

在Android清單,設定機器人:硬件加速= 「真」:

<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); 

希望這會爲你工作.. .. !!!!

+0

我添加了android:hardwareAccelerated =「true」,並且我有PluginState.ON – Zookey

+0

@Zookey請參閱參考資料http://stackoverflow.com/questions/8177206/how-to-play-video-in-android-webview – 2013-07-22 09:54:10

+0

@Zookey你可以使用videoview – 2013-07-22 10:15:52

相關問題