Javascript Android(三星S4)HTML5视频暂停
我正在使用Android Webview播放html5视频,包括Youtube视频(我自己的标签和Youtube嵌入的iFrame)。 在以下场景中,我遇到了三星Galaxy S4的问题:Javascript Android(三星S4)HTML5视频暂停,javascript,android,html,android-webview,html5-video,Javascript,Android,Html,Android Webview,Html5 Video,我正在使用Android Webview播放html5视频,包括Youtube视频(我自己的标签和Youtube嵌入的iFrame)。 在以下场景中,我遇到了三星Galaxy S4的问题: 播放视频 播放视频时/之后按“后退”(视图关闭) 再次打开视图并按“播放” 视频开始播放并立即暂停。从这一刻起,我将尝试播放的每个视频都会发生同样的情况 我在一个测试环境中使用了两种网络视图:“常规”Android网络视图和 我看到的唯一“可疑”是按下“后退”键时出错(Android错误): 这是一个问题吗?
Yaniv当您关闭
网络视图时,如果音频服务
没有焦点,则不会暂停。这会导致几个问题(其他玩家无法开始玩等)
唯一适合我的解决方案是:
@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);
}
这将导致当前玩家在下潜时暂停/死亡(不确定是哪个),并解决所有遇到的问题 前面的答案在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();
}
我也看到了这个行为,还有这个视频。仍然没有结果。你找到解决办法了吗?
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();
}