2012-12-30 116 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