我在WebView上播放youtube视频时遇到问题。我整天都在阅读如何做到这一点的问答,但它不起作用。 我已经设置了Manifest ,这就是我正在使用的代码
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我可以点击计时器开始的播放按钮,但我什么都看不到。
修改 问题似乎在模拟器上而不是在真实设备上,请检查答案的注释。
答案 0 :(得分:4)
试试这个
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>
答案 1 :(得分:0)
我创建了这个库来在WebView android-youtube-player中播放YouTube视频。这比构建自己的解决方案要容易和快捷得多。
您也可以disable the UI of the library and just use the UI of the web player。