我想使用android 4冰淇淋三明治浏览器自动启动android html5视频 . 我尝试了许多html5视频的java脚本函数和autobuffer autoplay标签 . 但没有任何效果 . 我通过Android应用程序在webview中启动android chrome客户端,该客户端应该能够自动启动视频 . 单击播放按钮时播放视频但不播放自动播放 .
是否限制在Android?另外需要注意的是,即使我们点击播放按钮并且视频正在播放和完成,也不会在chromeClient中调用回调方法 .
我已经google了一下,在Android 4上找不到关于此问题的正面结果 .
2 回答
似乎Android 4改变了
play()
方法的要求以要求用户交互 . 如果从用户事件处理程序(例如touchstart
或mousedown
)中触发play()
,则只要在同一事件循环中运行该视频,就可以播放该视频 .这意味着您不应该使用异步触发器来调用
play()
,而是在没有setTimeout()
的情况下在同一个事件处理程序中调用play等等,所以像延时播放这样的东西是不可能的 .一种方法是在Android 4上使用与在iOS中相同的技巧 - 使用第一个用户交互事件
play()
和pause()
视频 . 这将使视频能够在以后进行操作,因为您在用户启动的操作期间播放了该视频 . 成功启动视频后,无论是否在事件处理程序循环内进行调用,您都可以在以后随时调用播放方法 .EDIT: 这是一个适用于HTC和三星的示例代码,但不适用于Galaxy Nexus 4.1(需要用户交互才能玩):
Android实际上有一个API!该方法是setMediaPlaybackRequiresUserGesture() . 经过大量的视频自动播放和SO的大量尝试攻击后我才发现它 . 以下是blair vanderhoof的一个例子:
适用于Android 4.4.4