美文网首页Android
WebView无法自动播放h5的video视频标签解决办法

WebView无法自动播放h5的video视频标签解决办法

作者: 晚睡晚起的 | 来源:发表于2017-06-15 11:21 被阅读1675次

    由于项目需求,在进入webview时需要自动播放h5里的video视频,国内网上找了比较多方案都不行,最后还是在Google上找到了解决办法: stackoverflow
    加入一行代码:

    webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
    

    WebView 一大堆的 setting 让人摸不着头脑 ,带着好奇心点开了改方法的源码:

    /**
    * See {@link android.webkit.WebSettings#setMediaPlaybackRequiresUserGesture}.
    */
        public void setMediaPlaybackRequiresUserGesture(boolean require) {
            synchronized (mAwSettingsLock) {
                if (mMediaPlaybackRequiresUserGesture != require) {
                    mMediaPlaybackRequiresUserGesture = require;
                    mEventHandler.updateWebkitPreferencesLocked();
                }
            }
        }
    

    这里只是给变量mMediaPlaybackRequiresUserGesture设值,然后调用:

        @CalledByNative
        private boolean getMediaPlaybackRequiresUserGestureLocked() {
            return mMediaPlaybackRequiresUserGesture;
        }
    

    方法由JNI层调用,

    web_prefs->user_gesture_required_for_media_playback =
    Java_AwSettings_getMediaPlaybackRequiresUserGestureLocked(env, obj);
    

    到这里可以发现,在内核中去调用该接口,判断是否允许自动播放音视频

    相关文章

      网友评论

        本文标题:WebView无法自动播放h5的video视频标签解决办法

        本文链接:https://www.haomeiwen.com/subject/pemyqxtx.html