android webview youtube 嵌入视频自动播放不起作用 [英] android webview youtube embed video autoplay not working
问题描述
我无法自动播放我的视频,请帮忙解决这个问题.我的sdk版本
i am not able to autoplay my video please help in this. my sdk version
android:minSdkVersion="14"
android:targetSdkVersion="19" />
我试图按照代码中指定的方式放置java脚本:
i tried to put java script as specifed in code:
public void onPageFinished(WebView view, String url) { webView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
我也尝试在 URL 中附加自动播放但不起作用//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
i also try to append autoplay in URL but not working
//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
我的网络设置`
customViewContainer = (FrameLayout)rootView.findViewById(R.id.customViewContainer);
webView = (WebView) rootView.findViewById(R.id.HelpView_Video);
final GlobleClass globalVariable = (GlobleClass) GlobleClass.getContext();
mWebViewClient = new HelpWebViewClient();
webView.setWebViewClient(mWebViewClient);
mWebChromeClient = new myWebChromeClient();
webView.setWebChromeClient(mWebChromeClient);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(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(); })()"); }
});
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
// webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
// }
webView.getSettings().setAppCacheEnabled(true);
//webView.getSettings().setBuiltInZoomControls(true);
// webView.getSettings().setSaveFormData(true);
//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
webView.loadUrl(globalVariable.getHelpVideoUrl());
`
推荐答案
受到 Orsi 的 answer 的启发,我能够在显示视频播放器的 WebView 的中心模仿 onClick() 事件.这最终会自动播放视频,或者更确切地说,无需用户交互.
Inspired by Orsi's answer, I was able to mimic onClick() event on the center of the WebView that showed video player. This ultimately played the video automatically, or rather, without user's interaction.
private class AutoPlayVideoWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// mimic onClick() event on the center of the WebView
long delta = 100;
long downTime = SystemClock.uptimeMillis();
float x = view.getLeft() + (view.getWidth()/2);
float y = view.getTop() + (view.getHeight()/2);
MotionEvent tapDownEvent = MotionEvent.obtain(downTime, downTime + delta, MotionEvent.ACTION_DOWN, x, y, 0);
tapDownEvent.setSource(InputDevice.SOURCE_CLASS_POINTER);
MotionEvent tapUpEvent = MotionEvent.obtain(downTime, downTime + delta + 2, MotionEvent.ACTION_UP, x, y, 0);
tapUpEvent.setSource(InputDevice.SOURCE_CLASS_POINTER);
view.dispatchTouchEvent(tapDownEvent);
view.dispatchTouchEvent(tapUpEvent);
}
}
某处,
myWebView.setWebViewClient(new AutoPlayVideoWebViewClient());
这篇关于android webview youtube 嵌入视频自动播放不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!