Android:在 Webview 上播放 youtube 视频

Posted

技术标签:

【中文标题】Android:在 Webview 上播放 youtube 视频【英文标题】:Android: playing youtube video on Webview 【发布时间】:2017-12-23 08:12:25 【问题描述】:

我在 WebView 上播放 youtube 视频时遇到问题。我整天都在阅读有关如何执行此操作的问答,但它不起作用。 我已经设置了清单,这是我正在使用的代码

mWebview.setWebViewClient(new WebViewClient() 
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
            return false;
        
    );


    mWebview.getSettings().setPluginState(WebSettings.PluginState.ON);
    mWebview.setWebChromeClient(new WebChromeClient());
    mWebview.getSettings().setjavascriptEnabled(true);
    mWebview.getSettings().setAppCacheEnabled(true);
    mWebview.setInitialScale(1);
    mWebview.getSettings().setLoadWithOverviewMode(true);
    mWebview.getSettings().setUseWideViewPort(true);

    //webSettings.setLoadsImagesAutomatically(true);
    //webSettings.setSupportZoom(false);

    mWebview.loadUrl("https://www.youtube.com/embed/MYVIDEOID");

发生了什么是this 我可以点击播放按钮计时器开始但我什么也看不到。

编辑: 问题似乎在模拟器上而不是在真实设备上,请查看评论以获取答案。

【问题讨论】:

【参考方案1】:

试试这个

String frameVideo = "<html><body>Video From YouTube<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/47yJ2XCRLZs\" frameborder=\"0\" allowfullscreen></iframe></body></html>";

    WebView displayYoutubeVideo = (WebView) findViewById(R.id.mWebView);
    displayYoutubeVideo.setWebViewClient(new WebViewClient() 
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
            return false;
        
    );
    WebSettings webSettings = displayYoutubeVideo.getSettings();
    webSettings.setJavaScriptEnabled(true);
    displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8");

也在清单文件中设置 android:hardwareAccelerated="true"

<application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

</application>

【讨论】:

什么都没有发生,比如在我可以点击播放按钮之前,计时器开始移动,但看不到视频 你在你的应用程序标签中做了广告吗 android:hardwareAccelerated="true"' 像这样加载你的网址 String frameVideo = "来自 YouTube 的视频"; 什么都没有发生,就像问题上的图像我看到播放器内部有一个白色块。

以上是关于Android:在 Webview 上播放 youtube 视频的主要内容,如果未能解决你的问题,请参考以下文章

如何解决在android开发中WebView在线播放视频黑屏啊?

在 html iframe 内的 Android webview 上播放音频时出错

在 Android 上的 WebView 中播放本地视频

直播 RTMP/RTSP 播放器,无需在 Android 上使用 webview(WOWZA 服务器)

Android webView 播放 YouTube 视频

Android webview不播放视频,jwembedder