lz在HTML页面中播放Flash视频的时候,遇到了一个小问题,那就是如果Flash播放器的宽和高不合适,那么Chrome就会拦截播放器的自动播放,见下图:
然后必须要点击一下播放按钮,才能继续播放。随手Google了一下,发现了这IofoQ的一篇报道:Chrome 45将不再自动播放Flash。
请问大家是如何解决这个问题的?如何让Flash播放器自动播放视频?
以下内容更新与2016年1月21日11:00
下面是在StackOverFlow上搜的相似问题的回答:
The Flash Content and the page are loaded from the same domain.
Unknown Width and Height of the Flash Object ie when Chrome gets the width and height as 0 or less than 0.The Flash Content is whitelisted by the user in Chrome Settings.
The Width and Height of the Flash Object are less than or equal to 5 each, considering the content to be Tiny and essential.
The Width and Height of the Flash object are equal or greater than 398x298.
The Aspect Ratio of the content is 16:9, (with an allowed deviation of 0.01) AND the width*height area is at least 120K.
题主给出了下面几个解决方法:
使用
ExternalInterface
初始化播放器尺寸大于398x298,然后使用
transform: scale()
。In Flash -
stage.frameRate
returns correct value (it's not set to 0 to pause the SWF for instance)
我尝试了第2种解法,但是这样会造成Flash视频卡顿。其它解法不会。。。囧!
Google 到了 Chrome 官方论谈的一篇帖子。帖子把 Chromium 的源码都给扒出来了,最终给出了一个解决办法:
跨站(Cross-origin)的 flash 的宽度至少是
398
,高度至少是298
,否则会被认为是不重要的 flashflash 内容的宽度比为 16:9 的 flash 会被当作重要的,因此可以自动播放。
你的视频好像是高度不够。
相关的源码如下:
完整的参见这里