我正在使用Android Webview播放html5视频,包括Youtube视频(我自己的标签和Youtube嵌入式iFrame)。 在以下情况下,我遇到了Samsung Galaxy S4的问题:
我在测试环境中尝试了两种Webview:“常规”Android Webview和HTML5 webview
我看到的唯一“可疑”的事情是在按下“后退”时出错(Android错误):
sendUserActionEvent() mView == null
这是Galaxy S4问题吗? Android问题?有什么想法吗?
TNX, 参见Yaniv
答案 0 :(得分:15)
如果AudioService
在关闭Webview
时没有焦点,则看起来没有暂停。这导致了几个问题(另一个玩家无法开始玩等)。
唯一对我有用的解决方案是:
@Override
protected void onPause() {
super.onPause();
((AudioManager)getSystemService(
Context.AUDIO_SERVICE)).requestAudioFocus(
new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {}
}, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
}
这会导致当前玩家在停下来时被暂停/杀死(不确定是哪个)并解决所有遇到的问题。
答案 1 :(得分:1)
以前的答案在Android Kitkat上没有对我有用,以下答案适用于所有平台。
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webView, (Object[]) null);
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
} catch (NoSuchMethodException nsme) {
nsme.printStackTrace();
} catch (InvocationTargetException ite) {
ite.printStackTrace();
} catch (IllegalAccessException iae) {
iae.printStackTrace();
} catch (NullPointerException nullPointerException) {
nullPointerException.printStackTrace();
}