Webview HTML 视频全屏 - onShowCustomView() 仅调用一次
Webview HTML Video fullscreen - onShowCustomView() called only once
我正在使用 HTML video tag
在 android 网络视图中播放视频。但是,当我尝试按下全屏按钮时,来自 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>
网页视图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");
}
}
为了使其正常工作,我了解到我需要获取视频视图 Holder 并将其放在另一个视图中。但是,我想使用我自己的自定义全屏视图。
为了做到这一点,我制作了自己的自定义 HTML 视频控件以使用 CSS 和 Javascript 并使用 'fullscreen' 按钮调用我的自定义全屏视图每次。工作得很好!
我正在使用 HTML video tag
在 android 网络视图中播放视频。但是,当我尝试按下全屏按钮时,来自 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>
网页视图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");
}
}
为了使其正常工作,我了解到我需要获取视频视图 Holder 并将其放在另一个视图中。但是,我想使用我自己的自定义全屏视图。
为了做到这一点,我制作了自己的自定义 HTML 视频控件以使用 CSS 和 Javascript 并使用 'fullscreen' 按钮调用我的自定义全屏视图每次。工作得很好!