Video Vimeo in visualizzazione web orizzontale a schermo intero

Aug 21 2020

Sto cercando di visualizzare correttamente un video Vimeo in un'attività orizzontale a schermo intero. Il video ha un margine bianco "strano" in alto e in basso.

Queste sono le impostazioni della visualizzazione 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);

Inietto con:

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

E questo è l'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>

Ho aggiunto il meta contenuto, leggendo questo log della console:

"Rifiutato di caricare l'immagine" android-webview-video-poster: default_video_poster / 5386880230549634306 "perché viola la seguente direttiva sui criteri di sicurezza dei contenuti:" 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 ".", fonte:https://player.vimeo.com/video/445319847 (0) *

E poi atterrando su questa risposta . A proposito, l'avviso non scompare e la correzione sembra non funzionare. Qualche idea? Grazie molto.

EDIT: se non è possibile avere il lettore esattamente a schermo intero, come posso riempire lo spazio bianco con, ad esempio, il nero?

Risposte

1 snachmsm Aug 21 2020 at 17:20

niente di strano qui. iframesta soddisfacendo il tuo WebView( width="100%" height="100%"nessun margine html, padding ecc.), che viene disegnato alle dimensioni dello schermo. Schermo intero, anche sotto la barra di stato, quindi margini bianchi non uguali (scommetto che stai usando fitsSystemWindowsattr)

iframesta caricando la pagina web src="https://player.vimeo.com/video/445319847"e questa pagina contiene un player che sta cercando di soddisfare il frame (in questo caso adatta alla larghezza), ma mantiene le proporzioni e il player centrale

Correzione: crea un lettore nativo (raccomandando ExoPlayer ) e carica il collegamento diretto al file video, alcuni esempi su come estrarre il collegamento mp4 QUI