2014-02-15 70 views
2

我正在使用WebView類播放YouTube視頻。youtube的所有視頻ID都不是在webview中播放?

代碼片段:

public class WebViewPlayer extends Activity { 

    private WebView engine; 
    private String video_id = "bIPcobKMB94"; 
    // private String video_id ="Q-GLuydiMe4"; // **Not Playing** 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_web_view_player); 

     engine = (WebView) findViewById(R.id.webview); 

     engine.setWebViewClient(new WebViewClient()); 

     engine.getSettings().setAllowFileAccess(true); 
     engine.getSettings().setJavaScriptEnabled(true); 

     engine.loadUrl("http://www.youtube.com/embed/"+video_id+"?autoplay=1"); 
    } 
} 

在這段代碼VIDEO_ID這是評論說,是不是在玩網頁視圖。後顯示在緩衝的消息:

「這部影片含有VEVO是內容從回放在特定網站上受限制Watech到YouTube上。」

請對此看看。並建議我該怎麼辦?


EDIT 1:

engine = (WebView) findViewById(R.id.webview); // Vevo restriction but Zooming Capability 
     engine.setWebChromeClient(new WebChromeClient()); 
     engine.getSettings().setAllowFileAccess(true); 
     engine.getSettings().setJavaScriptEnabled(true); 
     engine.getSettings().setPluginState(PluginState.ON); 
     engine.setWebViewClient(new WebViewClient()); 
     engine.setBackgroundColor(0x00000000); 
     engine.getSettings().setBuiltInZoomControls(true); 
     String html = "<iframe width='420' height='345' src='http://www.youtube.com/embed/bIPcobKMB94' frameborder='0' allowfullscreen></iframe>"; 
     engine.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null); 

但是,當我通過VIDEO_ID = 「Q-GLuydiMe4」。 VEVO受限內容將顯示在其上。

Vevo id link這是不是在玩


編輯2

我與所有設置的WebView

  • engine.getSettings()檢查setJavaScriptEnabled(真)。
  • engine.getSettings()。setAppCacheEnabled(true);
  • engine.getSettings()。setDomStorageEnabled(true);
  • engine.getSettings()。setAllowContentAccess(true);
  • engine.getSettings()。setAllowFileAccessFromFileURLs(true);
  • engine.getSettings()。setAllowUniversalAccessFromFileURLs(true);
  • engine.getSettings()。setBlockNetworkLoads(true);
  • engine.getSettings()。setJavaScriptCanOpenWindowsAutomatically(true);
  • engine.getSettings()。setPluginState(PluginState.ON);
  • engine.getSettings()。setUseWideViewPort(true);

但還是視頻沒有在網頁視圖

運行,請建議我應該怎麼做什麼??? 有沒有人知道這件事

+0

我遇到了同樣的問題,並在另一個問題中回答它,請參閱http:// stackoverflow。com/a/33252413/4662374 –

回答

1

內容所有者可以域級白名單或黑名單您的來源,這基本上意味着你不能玩他們。不幸的是我不相信有任何簡單的方法可以解決這個問題。

+1

但這在iOS中沒有發生。我在iOS webView類中播放了相同的Video_id。它工作得很好。那麼Android中的原因是什麼? –

+0

我不能肯定地說,但Vevo有可能區分iOS和Android,至於這樣做的原因,除非他們發佈了關於它的聲明,否則不可能說出來。 – timeshift117

+0

我已經實現了自定義播放器(使用視頻視圖),在這也是我面臨同樣的問題,iOS也有同樣的問題。但有些應用在webview和Video播放器中播放相同的視頻。我不知道如何?但VEVO正在其他音樂應用程序中運行。 –

相關問題