I read several task on my problem but I don't know how to go. I have webview with youtube video embed. When I click, I have the sound but not the video. I add this :
content.setWebChromeClient(new WebChromeClient() {});
but it doesn't work !
This is my webview :
content = new WebView(this);
content.setLayoutParams(new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,
Gravity.CENTER
));
content.setHorizontalScrollBarEnabled(false);
content.setVerticalScrollBarEnabled(false);
content.getSettings().setJavaScriptEnabled(true);
content.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
content.getSettings().setBuiltInZoomControls(false);
content.getSettings().setSupportZoom(true);
content.getSettings().setUseWideViewPort(true);
content.getSettings().setPluginsEnabled(true);
content.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
content.getSettings().setSavePassword(true);
content.getSettings().setSaveFormData(true);
content.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
content.setWebChromeClient(new WebChromeClient() {
});
content.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
close();
}
@Override
public void onPageFinished(WebView view, String url) {
view.setVisibility(View.VISIBLE);
showLayout();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri overrideUrl = null;
Uri currentUrl = Uri.parse(url);
if (data.getFormat().equals(Format.IMAGE)) {
...
}
if (overrideUrl != null) {
Intent browser = new Intent(Intent.ACTION_VIEW);
browser.setData(overrideUrl);
startActivity(browser);
return false;
}
view.loadUrl(url);
return true;
}
});
layout.addView(content);
content.loadData(data.getHtml(), "text/html", "UTF-8");
add this in your manifest
<application android:hardwareAccelerated="true" ... />