フルスクリーンランドスケープWebビューのVimeoビデオ

Aug 21 2020

フルスクリーンのランドスケープアクティビティでVimeoビデオを正しく表示しようとしています。ビデオの上下に「奇妙な」白い余白があります。

Webビューの設定は次のとおりです。

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 'data: 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.comhttps:// .ci.vimeows.com https://f.vimeocdn.com "。"、ソース:https://player.vimeo.com/video/445319847 (0)*

そして、この答えに着陸します。ところで、警告は消えておらず、修正は機能していないようです。何か案は?どうもありがとう。

編集:プレーヤーを完全に全画面表示にすることができない場合、どうすれば空白を黒などで埋めることができますか?

回答

1 snachmsm Aug 21 2020 at 17:20

ここでは何も奇妙なことはありません。iframeあなたのfulfilingされていないWebViewwidth="100%" height="100%"画面のサイズで描画されたHTMLコードマージン、パディングなど)、。画面全体、これもステータスバーの下にあるため、白い余白が等しくありません(fitsSystemWindowsattrを使用しているに違いありません)

iframeはウェブページsrc="https://player.vimeo.com/video/445319847"を読み込んでおり、このページにはフレーム(この場合はフィット幅)を満たそうとしているプレーヤーが含まれていますが、アスペクト比とセンタープレーヤー自体は保持されています

修正:いくつかのネイティブプレーヤー(ExoPlayerを推奨)を作成し、直接ビデオファイルリンクをロードします。ここでmp4リンクを抽出する方法の例をいくつか示します。