我正在使用 WebView 类来播放 youtube 视频。
代码 fragment :
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 没有在 WebView 中播放。缓冲后显示消息:
“此视频包含来自 VEVO 的内容。在某些网站上播放受到限制。Watech On Youtube”
请看这个。并建议我应该怎么做?
编辑 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(true);
- 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);
但视频仍然没有在 WebView 中运行
请建议我该怎么做??? 有没有人知道这件事
最佳答案
内容所有者可以将您的来源列入域级白名单或黑名单,这基本上意味着您无法播放它们。不幸的是,我认为没有任何简单的方法可以解决这个问题。
关于android - youtube 的所有视频 ID 都没有在 webview 中播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21793861/