3

我正在尝试在全屏横向活动中正确显示 Vimeo 视频。该视频的顶部和底部都有“奇怪的”白边。

在此处输入图像描述

这些是 webview 设置:

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);

我注入:

webView.loadDataWithBaseURL("https://vimeo.com", html, "text/html", "UTF-8", null);

这是 HTML:

<html>

<head>
    <meta http-equiv="Content-Security-Policy"
        content="default-src * gap:; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src *; img-src * data: blob: android-webview-video-poster:; style-src * 'unsafe-inline';">
</head>

<body style="margin: 0; padding: 0">
    <iframe src="https://player.vimeo.com/video/445319847" webkitallowfullscreen mozallowfullscreen allowfullscreen
        width="100%" height="100%" margin="0" padding="0" marginwidth="0" marginheight="0" hspace="0" vspace="0" ,
        frameborder="0" scrolling="no">
    </iframe>
</body>

</html>

我添加了元内容,阅读了这个控制台日志:

“拒绝加载图像‘android-webview-video-poster:default_video_poster/5386880230549634306’,因为它违反了以下内容安全策略指令:“img-src‘self’数据:https ://i.vimeocdn.com https:// /secure-b.vimeocdn.com https://f.vimeocdn.com https://vimeo.com https://secure.gravatar.com https://i0.wp.com https://i1.wp。 com https://i2.wp.com https://pagead2.googlesyndication.com https://player.vimeo.com https: //.ci.vimeows.com https://f.vimeocdn.com"。" ,来源:https ://player.vimeo.com/video/445319847 (0)*

然后登陆这个答案。顺便说一句,警告并没有消失,修复似乎不起作用。有任何想法吗?非常感谢。

编辑:如果不可能让播放器完全全屏,我怎样​​才能用黑色填充空白空间?

4

1 回答 1

2

这里没有什么奇怪的。iframe正在满足您的WebViewwidth="100%" height="100%"没有 html 边距、填充等),它以屏幕大小绘制。整个屏幕,也在状态栏下方,因此不等于白边距(我打赌你正在使用fitsSystemWindowsattr)

iframe正在加载网页src="https://player.vimeo.com/video/445319847",并且此页面包含试图满足框架的播放器(在这种情况下适合宽度),但保持纵横比和中心播放器本身

修复:制作一些原生播放器(推荐ExoPlayer)并加载直接视频文件链接,一些示例如何在HERE中提取 mp4 链接

于 2020-08-21T10:20:10.967 回答