在WebView中加载YouTubevideo时,全屏选项不可用

我在Android应用程序中使用webview工作了很多次。 但是这次我把加载YouTubevideojoin到WebView中有一个奇怪的问题。

请参阅这是在Chrome浏览器中加载的YouTubevideo的屏幕截图,其中包含全屏选项。

在这里输入图像说明

现在,下面是我的应用程序的屏幕截图,我在webview中加载了相同的video。 但它没有全屏幕选项。

在这里输入图像说明

您可以看到两个图像中的更改。 这两个屏幕截图都来自同一个设备。 但是看起来不一样

我的代码为webView加载在这里这里链接。

我希望可能有办法做到这一点。 需要一些帮助。 谢谢。

UPDATE

我也看到同样的问题在这里报道。 但不知道是否有解决scheme。

真诚的,Shreyash

Solutions Collecting From Web of "在WebView中加载YouTubevideo时,全屏选项不可用"

iFrame是一个选项,但你可以试试这个

Android的WebView和WebChromeClient类扩展,支持完整的HTML5video支持

VideoEnabledWebView

我还没有尝试过,但希望对你有帮助。

在你的java文件中做下列修改:

 view.setWebViewClient(new Browser()); view.setWebChromeClient(new MyWebClient()); 

并添加这个2类是Browser类和MyWebClient类的Java文件

 class Browser extends WebViewClient { Browser() {} public boolean shouldOverrideUrlLoading(WebView paramWebView, String paramString) { paramWebView.loadUrl(paramString); return true; } } public class MyWebClient extends WebChromeClient { private View mCustomView; private WebChromeClient.CustomViewCallback mCustomViewCallback; protected FrameLayout mFullscreenContainer; private int mOriginalOrientation; private int mOriginalSystemUiVisibility; public MyWebClient() {} public Bitmap getDefaultVideoPoster() { if (MainActivity.this == null) { return null; } return BitmapFactory.decodeResource(MainActivity.this.getApplicationContext().getResources(), 2130837573); } public void onHideCustomView() { ((FrameLayout)MainActivity.this.getWindow().getDecorView()).removeView(this.mCustomView); this.mCustomView = null; MainActivity.this.getWindow().getDecorView().setSystemUiVisibility(this.mOriginalSystemUiVisibility); MainActivity.this.setRequestedOrientation(this.mOriginalOrientation); this.mCustomViewCallback.onCustomViewHidden(); this.mCustomViewCallback = null; } public void onShowCustomView(View paramView, WebChromeClient.CustomViewCallback paramCustomViewCallback) { if (this.mCustomView != null) { onHideCustomView(); return; } this.mCustomView = paramView; this.mOriginalSystemUiVisibility = MainActivity.this.getWindow().getDecorView().getSystemUiVisibility(); this.mOriginalOrientation = MainActivity.this.getRequestedOrientation(); this.mCustomViewCallback = paramCustomViewCallback; ((FrameLayout)MainActivity.this.getWindow().getDecorView()).addView(this.mCustomView, new FrameLayout.LayoutParams(-1, -1)); MainActivity.this.getWindow().getDecorView().setSystemUiVisibility(3846); } } 

如果我理解正确,你有一个iframe包含第二个iframe(youtube之一)。 尝试将allowfullscreen属性添加到“父”iframe。

对于完整的浏览器支持,应该看起来像这样:

 <iframe src="your_page_url" allowfullscreen="allowfullscreen" mozallowfullscreen="mozallowfullscreen" msallowfullscreen="msallowfullscreen" oallowfullscreen="oallowfullscreen" webkitallowfullscreen="webkitallowfullscreen"> </iframe>