Javascript Android(三星S4)HTML5视频暂停

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错误): 这是一个问题吗?

我正在使用Android Webview播放html5视频,包括Youtube视频(我自己的标签和Youtube嵌入的iFrame)。 在以下场景中,我遇到了三星Galaxy S4的问题:

  • 播放视频
  • 播放视频时/之后按“后退”(视图关闭)
  • 再次打开视图并按“播放”
  • 视频开始播放并立即暂停。从这一刻起,我将尝试播放的每个视频都会发生同样的情况
  • 我在一个测试环境中使用了两种网络视图:“常规”Android网络视图和

    我看到的唯一“可疑”是按下“后退”键时出错(Android错误):

    这是一个问题吗?安卓问题?有什么想法吗

    tnx,
    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();
        }