采用了android 4浏览器自动启动HTML5视频(Autostart html5 video u

2019-06-17 14:52发布

我想用的Android 4.0 Ice Cream Sandwich的浏览器自动启动Android HTML5视频。 我试过很多Java的脚本功能和HTML5视频的自动缓冲自动播放标签。 但毫无效果。 我通过Android应用程序启动的WebView的Android Chrome用户端和客户端应该能够自动启动视频。 当点击播放按钮播放视频,但不自动播放。

难道是在Android的限制? 注意到另一件事是,没有任何回调方法被称为chromeClient甚至当我们点击播放按钮和视频播放中完成。

我用Google搜索和发现任何积极的结果在这个问题上的Android 4。

Answer 1:

如此看来,Android的4+改变了要求,为play()方法需要用户交互。 如果触发play()从用户事件处理(如内touchstartmousedown ),那么你可以,只要你运行它在同一事件循环内播放视频。

这意味着,你不应该使用异步触发调用play()而是调用相同的事件处理中发挥没有setTimeout()和这样的,所以像延时播放的东西是不可能的。

一种方法是使用同样的伎俩在Android 4的iOS中-使用第一个用户交互事件play()pause()的视频。 这将在以后启用的操作视频,因为你一个用户发起的行动中发挥它。 你已经成功灌注的视频后,您可以在以后随时调用播放方法,无论电话是否在事件处理循环或不作出里面。

编辑:下面是关于HTC和三星工作的示例代码,而不是Galaxy Nexus的4.1(需要用户交互播放):

var myVideo = document.getElementById('myvideo');

myVideo.addEventListener('canplay', function() {
  myVideo.play();
});

myVideo.load();
myVideo.play();


Answer 2:

安卓实际上有一个API,这个! 该方法setMediaPlaybackRequiresUserGesture()。 我发现了很多挖成视频自动播放,并从让不少企图的黑客后。 下面是布莱尔德霍夫一个例子:

package com.example.myProject;

import android.os.Bundle;
import org.apache.cordova.*;
import android.webkit.WebSettings;

public class myProject extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by <content src="index.html" /> in config.xml
        super.loadUrl(Config.getStartUrl());
        //super.loadUrl("file:///android_asset/www/index.html");

        WebSettings ws = super.appView.getSettings();
        ws.setMediaPlaybackRequiresUserGesture(false);
    }
}

适用于Android 4.4.4



文章来源: Autostart html5 video using android 4 browser