2012-12-30 245 views
4

是否可以从webview播放youtube视频,就像当我从浏览器访问YouTube网站时一样,并且视频开始播放时,它将以全屏播放视频。从webview播放youtube视频

这是到目前为止我的代码:

webView = (WebView) v.findViewById(R.id.webview); 
webView.setWebChromeClient(new WebChromeClient()); 
webView.setWebViewClient(new WebViewClient()); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
webView.setWebChromeClient(new WebChromeClient() { 
     public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { 
      super.onShowCustomView(view, callback); 
      if (view instanceof FrameLayout) { 
       final FrameLayout frame = (FrameLayout) view; 
       if (frame.getFocusedChild() instanceof VideoView) { 
        // get video view 

        VideoView video = (VideoView) frame.getFocusedChild(); 
        Uri mUri = null; 
        try { 
         Field mUriField = VideoView.class.getDeclaredField("mUri"); 
         mUriField.setAccessible(true); 
         mUri = (Uri) mUriField.get(video); 
         Log.d(TAG, "the uri is "+mUri.toString()); 
         Intent i = new Intent(); 
         i.setData(mUri); 
         i.setAction(Intent.ACTION_VIEW); 
         startActivity(i); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 

       } 
      } 
     } 
    }); 

webView.loadUrl("www.youtube.com"); 

我想只有当用户点击“播放”的网页视图内YouTube视频,而不是之前启动YouTube应用。

需要显示整个频道,因此用户可以选择他想播放的视频,与从浏览器应用访问YouTube网站的行为相同。

编辑:建议我已经添加onShowCustomView()方法来处理播放点击,现在我得到一些uri,我如何在全屏视频播放中播放视频?

+0

这意味着你不想发挥'webView'视频?如果是,那么你可以使用'overlay'视图并在该视图上设置'onClick'监听器来打开'youtube'应用。 –

+0

我想知道哪个视频被点击了,所以我可以开始播放youtube视频。 – user22098

回答

2
webView = (WebView) findViewById(R.id.webview_1); 

String play= "<html><body>Youtube <br> <iframe class=\"youtube-player\" type=\"text/html\" width=\"600\" height=\"300\" src=\"http://www.youtube.com/embed/bIPcobKMB94\" frameborder=\"0\"></body></html>" 

webView.loadData(play, "text/html", "utf-8"); 

还可以看到..
YouTube Video not playing in WebView - Android

+0

我想要显示整个频道,但我仍然希望用户能够在YouTube网站中导航。 – user22098

+0

我不确定你是否可以nevigate在一个webview.see它的一些信息..http://stackoverflow.com/questions/12572549/how-do-i-display-youtube-site-video-within-webview – ridoy

+0

重写onShowCustomView帮助。 – user22098