我有一个WebView
的YouTube视频和3个标签。 YouTube视频在第1个标签中可用,而在其他2个标签中则有内容。
现在我想在用户移动到其他标签时暂停视频。我试过
webView.onPause();
和
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webView, (Object[]) null);
但它暂停了整个WebView
,我的其他两个标签也没有响应。如何停止视频而不是整个WebView
进程
答案 0 :(得分:1)
您可以从Android评估Javascript并停止视频播放。
webView.evaluateJavascript(javascript,callBack); 或旧版本。 webView.loadUrl(JavaScript的); 检查一下 https://developer.android.com/reference/android/webkit/WebView.html#evaluateJavascript(java.lang.String,android.webkit.ValueCallback
你有什么类型的视频? iframe或视频标签?
答案 1 :(得分:0)
在较旧的设备上(api <= 21)我不认为这实际上是可行的,但是检索webview的内部控件的简单方法是:
导航到../Android/android-sdk/tools/androiduiautomator.bat并将其打开。
确保您的设备通过ADB桥接器连接(很可能是它)
获取屏幕的设备屏幕截图并将鼠标悬停在要调用onPause的webkit控件上,这会在屏幕右侧显示一些信息。
替换
的idClass.ForName("yourId")
并且只调用一个通用的click事件,它会导致暂停的内部效果。它也可能是
Field.getDeclaredField("Id")
但我并不积极。其中一个应该获得理想的结果。
答案 2 :(得分:0)
您写道,您有一个WebView和3选项卡,您是否在所有选项卡中使用该WebView?
我的解决方案是您在其他选项卡中使用另一个WebView,如果选择了一些可能需要的数据,则发送给他们。
事实上,这并不能解决你的问题,但我希望能解决你的问题。
答案 3 :(得分:0)
我在整个应用程序中都遇到了类似的WebViews故障问题。我决定以相同的方式使用onPause()
(即 onResume()
)的补充功能:
Class.forName("android.webkit.WebView")
.getMethod("onResume", (Class[]) null)
.invoke(webView, (Object[]) null);