android - 全屏横向 WebView 中的 Vimeo 视频

标签 android android-webview android-fullscreen vimeo-android

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

enter image description here

这些是 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);

我注入(inject):

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)*

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

编辑:如果无法让播放器完全全屏显示,我怎样才能用例如黑色?

最佳答案

这里没有什么奇怪的。 iframe 正在实现您的 WebView(width="100%"height="100%" 没有 html 边距、填充等),这是按屏幕大小绘制。整个屏幕,也在状态栏下方,因此不等于白色边距(我打赌你正在使用 fitsSystemWindows attr)

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

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

关于android - 全屏横向 WebView 中的 Vimeo 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63520767/

相关文章:

Android 视频不会在 webview 中恢复

java - 如何在 WebView 中设置深色主题?

java - DER 编码的 RSA 公钥(八位字节字符串)

java - 自动填写 webview 中的字段

java - viewpager2 中的无限滚动

android - 全屏显示图像 - 失去质量安卓

android - Android中的全屏 Activity ?

Android 沉浸式模式转换

android - 如何使用 Dagger 2 将多个组件注入(inject)到同一个对象中

android - polymer TogglePanel 在 iphone 上闪烁