android - 安卓webview無(wú)法全屏播放iframe騰訊、優(yōu)酷視頻
問(wèn)題描述
先上代碼吧
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); // 如果一個(gè)視圖已經(jīng)存在,那么立刻終止并新建一個(gè) if (customView != null) {callback.onCustomViewHidden();return; } fullScreenView.addView(view); customView = view; customViewCallback = callback; fullScreenView.setVisibility(View.VISIBLE);}@Overridepublic void onHideCustomView() { if (customView == null)// 不是全屏播放狀態(tài)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(); }}
就是用一個(gè)webview顯示一個(gè)視頻(不是一個(gè)視頻網(wǎng)頁(yè),只是一個(gè)視頻),然后我使用的是iframe的鏈接(就是騰訊視頻分享那里的通用代碼)。我參照了網(wǎng)上很多關(guān)于全屏顯示的問(wèn)題,基本代碼都是這樣,但是并沒(méi)有用,感覺(jué)沒(méi)有調(diào)用到那兩個(gè)函數(shù)。還有是不是跟鏈接里限定了大小有關(guān)系。這樣的話,需要修改什么才能全屏呢?
問(wèn)題解答
回答1:樓主有找到解決方法嗎
相關(guān)文章:
1. Mysql && Redis 并發(fā)問(wèn)題2. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題3. css3 - 手機(jī)網(wǎng)頁(yè)中用css寫1px的描邊,為什么需要加一句overflow:hidden才能真正顯示1px?4. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款5. python - type函數(shù)問(wèn)題6. javascript - node服務(wù)端渲染的困惑7. css3 - css before 中文亂碼?8. mysql - 一個(gè)表和多個(gè)表是多對(duì)多的關(guān)系,該怎么設(shè)計(jì)9. css - 求推薦幾款好用的移動(dòng)端頁(yè)面布局調(diào)試工具呢?10. mysql新建字段時(shí) timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 報(bào)錯(cuò)
