android - 安卓webview无法全屏播放iframe腾讯、优酷视频
问题描述
先上代码吧
public class MainActivity extends AppCompatActivity { static final String iframeStr = '<iframe frameborder='0' src='http://v.qq.com/iframe/player.html?vid=v0151eygqka&tiny=0&auto=0' allowfullscreen></iframe>'; private WebView videoWebView; private FrameLayout fullScreenView; private View customView; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);fullScreenView = (FrameLayout) findViewById(R.id.video_fullscreen);videoWebView = (WebView) findViewById(R.id.webView);WebSettings settings = videoWebView.getSettings();settings.setJavaScriptEnabled(true);settings.setJavaScriptCanOpenWindowsAutomatically(true);settings.setDatabaseEnabled(true);settings.setAppCacheEnabled(true);settings.setCacheMode(WebSettings.LOAD_DEFAULT);settings.setPluginState(WebSettings.PluginState.ON);settings.setAllowFileAccess(true);settings.setLoadWithOverviewMode(true);settings.setDomStorageEnabled(true);settings.setUseWideViewPort(true);videoWebView.setWebChromeClient(new MyWebChromeClient());videoWebView.setWebViewClient(new MyWebViewClient());videoWebView.loadData(iframeStr,'text/html','utf-8'); } class MyWebViewClient extends WebViewClient{@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) { return false;} } class MyWebChromeClient extends WebChromeClient{private CustomViewCallback customViewCallback;@Overridepublic void onShowCustomView(View view, CustomViewCallback callback) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); videoWebView.setVisibility(View.INVISIBLE); // 如果一个视图已经存在,那么立刻终止并新建一个 if (customView != null) {callback.onCustomViewHidden();return; } fullScreenView.addView(view); customView = view; customViewCallback = callback; fullScreenView.setVisibility(View.VISIBLE);}@Overridepublic void onHideCustomView() { if (customView == null)// 不是全屏播放状态return; setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); customView.setVisibility(View.GONE); fullScreenView.removeView(customView); customView = null; fullScreenView.setVisibility(View.GONE); customViewCallback.onCustomViewHidden(); videoWebView.setVisibility(View.VISIBLE);} } @Override protected void onResume() {super.onResume();if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}videoWebView.resumeTimers(); } @Override protected void onPause() {super.onPause();videoWebView.pauseTimers(); } @Override protected void onDestroy() {super.onDestroy();videoWebView.destroy(); }}
就是用一个webview显示一个视频(不是一个视频网页,只是一个视频),然后我使用的是iframe的链接(就是腾讯视频分享那里的通用代码)。我参照了网上很多关于全屏显示的问题,基本代码都是这样,但是并没有用,感觉没有调用到那两个函数。还有是不是跟链接里限定了大小有关系。这样的话,需要修改什么才能全屏呢?
问题解答
回答1:楼主有找到解决方法吗
相关文章:
1. 前端 - 提问关于background-image不显示的问题2. 使用未定义的常量user_id-假定为“user_id”3. javascript - 如何在外部点击,跳转到网页后,显示指定的模块。4. mysql sql where id in(25,12,87) 结果集如何用按照 25 12 87排序?5. javascript - 在top.jsp点击退出按钮后,right.jsp进行页面跳转,跳转到login.jsp6. mysql - 记录开始时间和结束时间,表字段类型用timestamp还是datetime?7. python - Flask 脚本,运行一段时间后无响应8. css - 关于background-position百分比的问题?9. java - 阿里的开发手册中为什么禁用map来作为查询的接受类?10. atom开始输入!然后按tab只有空格出现没有html格式出现

网公网安备