android - Vimeo 视频无法在 android webview (ifame) 中完全适合屏幕播放(在纵向模式下不显示完全适合屏幕)
问题描述
Vimeo 视频无法在 android webview (ifame) 中完全适合屏幕播放(纵向模式下未显示完全适合屏幕)。任何人都可以帮助我吗?
String vimeoVideo = "<html><body><iframe width=\"100%\" height=\"270\" src=\"https://player.vimeo.com/video/" + ch_url + "?player_id=player\" frameborder=\"0\"" +
" allowfullscreen></iframe></body></html>";
webView = (WebView) findViewById(R.id.video);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {
webView.loadUrl(request.getUrl().toString());
return true;
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebChromeClient(new MyChrome());
webView.loadData(vimeoVideo, "text/html", "utf-8");
private void fullScreen() {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
toolbar.setVisibility(View.GONE);
cardView.setVisibility(View.GONE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
toolbar.setVisibility(View.VISIBLE);
cardView.setVisibility(View.VISIBLE);
}
}
private class MyChrome extends WebChromeClient {
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
fullScreen();
webView.setVisibility(View.GONE);
super.onShowCustomView(view, callback);
}
@Override
public void onHideCustomView() {
fullScreen();
webView.setVisibility(View.VISIBLE);
super.onHideCustomView();
}
}
解决方案
推荐阅读
- python - 有没有办法在 Python-Pandas 中对 Dataframe 进行多重过滤?
- python - 医院等待时间的情绪分析
- visual-studio-code - 禁用在 VS Code 中显示符号/对象信息的悬停
- sql - SQL TRIGGER:你如何限制某些东西被改变?
- android - androidx 是否包含 WatchFaceService 等 Wear OS 类的替代品?
- postman - 如何使用 Postman 确定未记录的 API 调用的正确语法,但使用 Python 示例
- php - 图表仅使用 jquery ajax php 打印出第一个值
- prometheus - 管理 pushgateway 最近抓取时间的 prometheus 限制
- ruby - 如何使用 Nokogiri 从结构不佳的 HTML 中获取特定项目
- postgresql - 具有外键约束的表