我想用的Android 4.0 Ice Cream Sandwich的浏览器自动启动Android HTML5视频。 我试过很多Java的脚本功能和HTML5视频的自动缓冲自动播放标签。 但毫无效果。 我通过Android应用程序启动的WebView的Android Chrome用户端和客户端应该能够自动启动视频。 当点击播放按钮播放视频,但不自动播放。
难道是在Android的限制? 注意到另一件事是,没有任何回调方法被称为chromeClient甚至当我们点击播放按钮和视频播放中完成。
我用Google搜索和发现任何积极的结果在这个问题上的Android 4。
如此看来,Android的4+改变了要求,为play()
方法需要用户交互。 如果触发play()
从用户事件处理(如内touchstart
或mousedown
),那么你可以,只要你运行它在同一事件循环内播放视频。
这意味着,你不应该使用异步触发调用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();
安卓实际上有一个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