android - youtube 的所有视频 ID 都没有在 webview 中播放?

标签 android video webview youtube

我正在使用 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/

相关文章:

android - WebView 被切断

android - Gradle插件defaultDependencies jar以编程方式

javascript - Azure Media Player 方形纵横比视频全屏

android - Android 1.6 上的 WebView 中不显示动画 GIF

audio - 如何通过gstreamer将pcap转换为带有视频和音频的avi文件?

video - 如何使用 FFMPEG 将 1080p 转换为 1080i

Android:如何在将数据加载到 WebView 时显示进度条?

java - Android editText 帮助

android - v10 和 v11+ 的通用样式?

android - 高分辨率图像在 Android 上模糊,但在使用 Lightview 模态的 iPhone 上不模糊