android youtube webview,android – 如何在WebView中全屏显示youtube视频

我使用以下代码:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_web_view_play_youtube);

WebView w = (WebView) findViewById(R.id.w);

w.setWebChromeClient(new WebChromeClient());

w.setWebViewClient(new WebViewClient());

w.getSettings().setJavaScriptEnabled(true);

w.loadUrl("https://www.youtube.com/watch?v=gY-HZg1Uwpc");

}

我得到以下截图

7f6fe12324b26b1b11983cdb4fb6209c.png

在此屏幕截图中,我看不到“fullScreen”按钮.

解决方法:

在您的情况下,您必须首先在XML文件中添加FrameLayout.之后

你必须在WebChromeClient的onShowCustomView和onHideCustomView上实现两个方法,如下所示:

FrameLayout customViewContainer = findViewById(R.id.customViewContainer);

webView.setWebChromeClient(new WebChromeClient() {

public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {

super.onShowCustomView(view,callback);

webView.setVisibility(View.GONE);

customViewContainer.setVisibility(View.VISIBLE);

customViewContainer.addView(view);

}

public void onHideCustomView () {

super.onHideCustomView();

webView.setVisibility(View.VISIBLE);

customViewContainer.setVisibility(View.GONE);

}

});

标签:browser,android,youtube,webview

来源: https://codeday.me/bug/20190527/1166079.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android WebView可以通过设置WebChromeClient来实现全屏视频播放。具体步骤如下: 1. 创建一个WebChromeClient对象,并重写onShowCustomView和onHideCustomView方法。 2. 在onShowCustomView方法,获取到全屏的View,并将其添加到Activity的根布局。 3. 在onHideCustomView方法,将全屏的View从Activity的根布局移除。 4. 在WebView的setWebChromeClient方法设置WebChromeClient对象。 示例代码如下: ``` webView.setWebChromeClient(new WebChromeClient() { private View mCustomView; @Override public void onShowCustomView(View view, CustomViewCallback callback) { super.onShowCustomView(view, callback); if (mCustomView != null) { callback.onCustomViewHidden(); return; } mCustomView = view; FrameLayout decor = (FrameLayout) getWindow().getDecorView(); decor.addView(mCustomView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); setStatusBarVisibility(false); } @Override public void onHideCustomView() { super.onHideCustomView(); if (mCustomView == null) { return; } FrameLayout decor = (FrameLayout) getWindow().getDecorView(); decor.removeView(mCustomView); mCustomView = null; setStatusBarVisibility(true); } }); private void setStatusBarVisibility(boolean visible) { int flag = visible ? : WindowManager.LayoutParams.FLAG_FULLSCREEN; getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN); } ``` 在onShowCustomView方法,将全屏的View添加到Activity的根布局,并隐藏状态栏。在onHideCustomView方法,将全屏的View从Activity的根布局移除,并显示状态栏。 ### 回答2: Android WebView是一种能够在应用程序嵌入网页的组件,它可以显示HTML、CSS和JavaScript等Web技术。当WebView嵌入了视频时,用户可以点击视频进行播放。但是,视频可能会占据整个WebView,而这不是我们想要的结果。我们希望用户可以点击视频后,播放器全屏,这时我们需要使用Android WebView全屏视频的相关知识。 要实现WebView全屏视频,一般需要以下步骤: 第一步:开启视频全屏模式 在Android,要开启视频全屏模式,可以调用WindowManager.LayoutParams.FLAG_FULLSCREEN,这个功能类似于在Activity上使用全屏主题。 第二步: 视频播放器进入全屏模式 要让视频播放器进入全屏模式,我们可以使用setFullscreen()方法或者setSystemUiVisibility()方法,同时,为了防止视频播放器在横竖屏切换时不能正确的重绘,还需要添加一个横竖屏切换的监听器,这个监听器会在用户切换屏幕方向时被调用。 第三步:退出全屏模式 当用户退出全屏模式时,我们还需在Activity调用setRequestedOrientation()方法,让Activity返回正常模式。同时也需要重绘WebView,以防止出现黑屏。 综上所述,如果要实现Android WebView全屏视频,需要了解相关的API和技术,并按照上述步骤进行编程实现,这样才能让用户在观看视频时拥有更佳的视听体验。 ### 回答3: Android WebView是一种内置浏览器,可以在应用程序显示网页,而全屏视频则指视频播放器在全屏模式下播放视频。在Android系统上,大多数的视频都是通过WebView来播放的,因此WebView全屏视频播放是非常常见的需求。 要在Android上实现WebView全屏视频,需要以下步骤: 1. 创建一个WebView对象并在其加载你想要播放的视频。 2. 创建一个继承自WebViewClient的类,并覆盖其的onShowCustomView和onHideCustomView方法。这两个方法是在全屏模式下自定义视图和退出全屏模式时被调用。 3. 在onShowCustomView方法创建一个全屏的VideoView对象。这个VideoView对象将会被用来播放视频。然后,获取当前的Activity对象,并将VideoView添加到该Activity的根视图。 4. 最后,在onHideCustomView方法,将VideoView从根视图移除,并销毁掉。 这些步骤就可以实现WebView全屏视频播放。不过需要注意的是,在实现WebView全屏视频时还需要考虑到某些机型上的兼容性问题。比如有些机型并不支持全屏模式下的自定义视图,或支持但只能以某种方式支持,所以在实现时需要做好兼容性测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值