Video does not play on Android website

I work with an Android application and PhoneGap and use the HTML5 tag to play videos on my web page. When I play the video, it is not visible, and the video does not play. How can I play HTML5 video on Android?

Code for below

<!DOCTYPE HTML> <html> <head> <script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script> <meta http-equiv="content-type" content="text/html; charset="> <title></title> </head> <body > <video id="video" autobuffer height="240" width="360" onclick="this.play();> <source src="test.mp4"> <source src="test.mp4" type="video/webm"> <source src="test.mp4" type="video/ogg"> </video> <div id="msg"></div> <script type="text/javascript"> </script> </body> </html> 

and onCreate method activity class →>

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final WebView webView = (WebView) findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webView.getSettings().setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); webSettings.setPluginState(PluginState.ON); webView.getSettings().setPluginsEnabled(true); webSettings.setAllowFileAccess(true); webView.loadUrl("file:///android_asset/www/html5videoEvents.html"); } 
+4
source share
2 answers

Add these lines before loading the HTML content into your WebView.

 wv.setWebChromeClient(new WebChromeClient() { }); 

From the documentation:

To support HTML5 embedded video in your application, you need to enable hardware acceleration and install WebChromeClient. For full-screen support, onShowCustomView (View, WebChromeClient.CustomViewCallback) and onHideCustomView () implementations are required, getVideoLoadingProgressView () is optional.

+1
source

Try it.

MainActivity.java

 public class MainActivity extends Activity { WebView webPage; Button next; String rootDir = "file://" + Environment.getExternalStorageDirectory() + "/iR-unzip/testbook/"; WebChromeClient webChromeClient = new WebChromeClient(); WebViewClient webViewClient = new WebViewClient(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webPage = (WebView) findViewById(R.id.webview); webPage.setWebChromeClient(webChromeClient); webPage.setWebViewClient(new MyWebViewClient()); webPage.getSettings().setJavaScriptEnabled(true); webPage.getSettings().setPluginsEnabled(true); //webPage.getSettings().setPluginState(PluginState.ON); webPage.getSettings().setLoadWithOverviewMode(true); webPage.getSettings().setUseWideViewPort(true); webPage.loadUrl(rootDir + "/" + "chapter_1.html"); next = (Button) findViewById(R.id.page_changer); next.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { webPage.loadUrl(rootDir + "/" + "chapter_2.html"); } }); } public class MyWebChromeClient extends WebChromeClient { @Override public void onShowCustomView(View view, CustomViewCallback callback) { // TODO Auto-generated method stub super.onShowCustomView(view, callback); if (view instanceof FrameLayout) { FrameLayout frame = (FrameLayout) view; if (frame.getFocusedChild() instanceof VideoView) { VideoView video = (VideoView) frame.getFocusedChild(); frame.removeView(video); video.start(); } } } } public class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } } 
0
source

Source: https://habr.com/ru/post/1442465/


All Articles