Skip to content

Instantly share code, notes, and snippets.

@aprock
Last active March 3, 2023 20:56
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save aprock/5913322 to your computer and use it in GitHub Desktop.
Save aprock/5913322 to your computer and use it in GitHub Desktop.
simple trick to autoplay an html5 video element in a webview. (inject javascript to play on load)
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView webview;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webview = new WebView(this);
setContentView(webview);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebViewClient(new WebViewClient() {
// autoplay when finished loading via javascript injection
public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("http://html5demos.com/video");
}
@Override
protected void onPause() {
super.onPause();
webview.onPause();
}
@Override
protected void onResume() {
webview.onResume();
super.onResume();
}
}
@prasad456
Copy link

I cant see video but its playing I can hear audio of video

@jessevanmuijden
Copy link

same here @prasad456

@taofik-nos
Copy link

Same here, only audio is playing.

@bhaveshintorque
Copy link

bhaveshintorque commented Jul 21, 2016

Add android:hardwareAccelerated="true" in application Menifist

@JhonathamBrazil
Copy link

I'm having a similar problem, I use several YouTube videos on my site, and auto-play does not work.

My site is this www.pipocaplayfm.com/mobile_play

I mounted a webview app, but it does not work ... can you help me?

@meetvora-ecosmob
Copy link

This might help:

@Override
protected void onResume() {
    webView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()");
    super.onResume();
}

I've added that JavaScript code in onResume.

@nhannt201
Copy link

Thank you so much. I can do it!

@ashishkha1000
Copy link

Thank you so much. I can do it!

how?

@nhannt201
Copy link

Thank you so much. I can do it!

how?

I used the above code!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment