Android WebView - 可以显示和播放播客的代码无法播放YouTube视频

时间:2013-07-25 16:47:06

标签: android android-webview

我有这个代码可以显示WebView并使用它:

WebView webview = null;

@Override
public void onCreate(Bundle savedInstanceState) 
 {
  //setTheme(R.style.Theme_Sherlock_Light);
  super.onCreate(savedInstanceState);
  //setContentView(R.layout.podcasts);


  webview = new WebView(this);
  webview.getSettings().setAppCacheEnabled(false);
  webview.getSettings().setJavaScriptEnabled(true);
  webview.setInitialScale(1);
  webview.getSettings().setPluginState(PluginState.ON);

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




  //webSettings.setBuiltInZoomControls(true);


  WebSettings webSettings = webview.getSettings();
  webSettings.setJavaScriptEnabled(true);
  webSettings.setBuiltInZoomControls(true);
  //webSettings.getMediaPlaybackRequiresUserGesture();
  webSettings.setAllowContentAccess(true);
  webSettings.setEnableSmoothTransition(true);
  webSettings.setLoadsImagesAutomatically(true);
  webSettings.setLoadWithOverviewMode(true);
  webSettings.setSupportZoom(true);
  webSettings.setUseWideViewPort(true);

  setContentView(webview);
  webview.loadUrl("url_to_go_to");         

但是当我尝试使用此代码指向YouTube频道时,它只显示一个空白屏幕。 知道为什么会这样吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

要显示HTML5视频,您需要在WebView中启用以下内容:

WebView view;
... //initialize WebView
WebSettings webViewSettings = view.getSettings();
view.setWebChromeClient(new WebChromeClient(){}); //just added this
webViewSettings.setDomStorageEnabled(true);
webViewSettings.setAppCacheEnabled(true);
webViewSettings.setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
webViewSettings.setDatabaseEnabled(true);
webViewSettings.setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");

您还需要将android:hardwareAccelerated="true"放入AndroidManifest中。否则,像YouTube视频这样的HTML5内容将无效。