Dro*_*oid 62 youtube video android webview
如何停止在我的网页浏览中播放的YouTube视频?当我点击后退按钮时,视频不会停止,而是在后台继续播放.
码:
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setSupportZoom(false);
webView.loadData(myUrl,"text/html", "utf-8");
Run Code Online (Sandbox Code Playgroud)
And*_*son 88
请参阅以下帖子,了解WebView线程永不停止
基本上你需要从你自己的Activity的onPause方法调用WebView的onPause方法.
唯一的技巧是你不能直接调用WebView的onPause方法,因为它是隐藏的.因此,您需要通过反射间接调用它.以下代码可以帮助您开始设置自己的Activity的onPause方法:
@Override
public void onPause() {
super.onPause();
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webview, (Object[]) null);
} catch(ClassNotFoundException cnfe) {
...
} catch(NoSuchMethodException nsme) {
...
} catch(InvocationTargetException ite) {
...
} catch (IllegalAccessException iae) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,上面try块中的变量"webview"是类的私有实例变量,并在Activity的onCreate方法中赋值.
vis*_*dra 68
解决方案:1 -
花了很多时间后,我得出结论暂停正在播放<iframe>HTML的WebView 概念的视频.
只需覆盖onPause()您使用的Activity或Fragment上的方法WebView,然后调用它.这个对我有用.
@Override
public void onPause() {
super.onPause();
mWebView.onPause();
}
@Override
public void onResume() {
super.onResume();
mWebView.onResume();
}
Run Code Online (Sandbox Code Playgroud)
解决方案:2 - 如果上述解决方案对您不起作用,则可以强制WebView加载不存在的html文件.
mWebview.loadUrl("file:///android_asset/nonexistent.html");
Run Code Online (Sandbox Code Playgroud)
CLu*_*era 17
你还必须实现onResume()方法或第二次它不起作用
@Override
public void onResume()
{
super.onResume();
webView.onResume();
}
@Override
public void onPause()
{
super.onPause();
webView.onPause();
}
Run Code Online (Sandbox Code Playgroud)
dan*_*gel 15
上面的解决方案在三星Galaxy S和Android 2.3.3上失败了.但我尝试以下解决方法取得了成功:
webview.loadUrl("file:///android_asset/nonexistent.html");
Run Code Online (Sandbox Code Playgroud)
我强迫webview加载一个不存在的html文件.这似乎迫使webview清理.
试试这个:
@Override
public void onPause() {
super.onPause();
myWebView.onPause();
myWebView.pauseTimers();
}
@Override
public void onResume() {
super.onResume();
myWebView.resumeTimers();
myWebView.onResume();
}
@Override
protected void onDestroy() {
myWebView.destroy();
myWebView = null;
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
这是我个人的最爱:
@Override
protected void onPause() {
super.onPause();
if (isFinishing()) {
webView.loadUrl("about:blank");
} else {
webView.onPause();
webView.pauseTimers();
}
}
@Override
protected void onResume() {
super.onResume();
webView.resumeTimers();
webView.onResume();
}
Run Code Online (Sandbox Code Playgroud)
如果仅暂停视图,它将暂停Web视图,但是在活动结束时将其清除。
这至少需要Android 3.0-API 11(蜂窝)
| 归档时间: |
|
| 查看次数: |
49353 次 |
| 最近记录: |