如何在 Android WebView 中以横向全屏播放视频?

Posted

技术标签:

【中文标题】如何在 Android WebView 中以横向全屏播放视频?【英文标题】:How to play video fullscreen with landscape in Android WebView? 【发布时间】:2017-03-13 15:13:07 【问题描述】:
    我想在androidWebView全屏播放视频,所以我使用html5标签<video>并将这些网络文件放入src/main/asset/...文件夹。 但是当我点击“全屏”按钮时,视频只是在垂直方向移动到中心(纵向)。 那么,我的问题是如何在横向设置全屏?谢谢你。

【问题讨论】:

Playing HTML5 video on fullscreen in android webview的可能重复 我尝试过这种方式,但没有奏效。 @petey 【参考方案1】:

我使用了cprcrack/VideoEnabledWebView 和RotatedVerticalFrameLayout。我刚刚在 VideoEnabledWebChromeClient 中更改了部分 onShowCustomView(View view, CustomViewCallback callback)。

 // Hide the non-video view, add the video view, and show it
 activityNonVideoView.setVisibility(View.INVISIBLE);
 Point screenSize = Utils.getDisplaySize(activityNonVideoView.getContext());
 FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(screenSize.y, screenSize.x);
 params.gravity = Gravity.BOTTOM;
 videoViewContainer.setLayoutParams(params);
 activityVideoView.addView(videoViewContainer);
 activityVideoView.setVisibility(View.VISIBLE);

在活动中我更改了 OnToggledFullscreenCallback 中的行

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

以便它隐藏导航栏。

为了获得我使用的显示尺寸

public static Point getDisplaySize(Context context) 
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getRealSize(size);
    return size;

【讨论】:

以上是关于如何在 Android WebView 中以横向全屏播放视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何在flutter webview中启用全屏模式

Webview 景观

如何在android Fragment中为webview显示全屏加载微调器?

为什么webview头键在android中以小写形式转换?

强制横向时Android应用程序(嵌入式WebView)崩溃

Android WebView 中的 Flash — 如何自动设置全屏?