Webview HTML视频全屏 - onShowCustomView()只调用一次

时间:2015-06-23 21:27:39

标签: android html5 android-webview html5-video webchromeclient

我正在使用HTML video tag在Android Webview中播放视频。但是,当我尝试按全屏按钮时,只会在第一次调用webview chrome客户端中的onShowCustomView()。每次我按下全屏按钮时,都不会调用函数onShowCustomView()

我想要的是,每次按下全屏按钮时,都应该调用onShowCustomView()。

网页视图

webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setAppCacheEnabled(true);
    webView.setWebChromeClient(mClient);
    webView.setWebViewClient(new WebViewClient());

HTML视频标记

<div>
       <!--<img id="videoImage" src="img/UI_homepage_innovation.png" style="cursor:pointer" onclick="play()"/>
       <iframe id="video" style="display:none;" src="http://www.youtube.com/embed/SNMjzPRQUA8?modestbranding=1&rel=0&showinfo=0&autohide=1&fs=0&autoplay=1"  frameborder="0" #allowfullscreen></iframe>-->
       <video poster="img/UI_homepage_innovation.png" controls>
           <source src="video/sintel.mp4" type="video/mp4">
                Your browser does not support the video tag.
       </video>
</div>

Webview Chrome客户端

public class MyChromeClient extends WebChromeClient {

    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {
        Log.v("Testing", "onShowCustomView");
    }

    @Override
    public void onHideCustomView() {
        Log.v("Testing", "onHideCustomView");
    }
}

1 个答案:

答案 0 :(得分:0)

为了使其正常工作,我了解到我需要获取视频视图Holder并将其放在另一个视图中。但是,我想使用自己的自定义全屏视图。

为了做到这一点,我制作了自己的自定义HTML视频控件,以便使用CSS和Javascript并使用全屏&#39;按钮每次调用我的自定义全屏视图。工作就像一个魅力!