删除HTML5视频上的黑色加载闪光灯
Remove black load flash on HTML5 video
我一直在为我玩的一个在线游戏创建一个网站。在标题中,我有一个HTML5视频,播放时间很短(1秒)。在Internet Explorer中没有问题,但在Chrome中,当视频加载时,会出现短暂的黑屏闪烁。有没有什么方法可以去掉这个闪光灯,或者,如果没有,把它变成白色以匹配背景?你明白我的意思了http://testingfortagpro.meximas.com/。如果你在IE和Chrome中尝试,你会看到视频加载方式的不同。或者,有没有更好的方法来实现这一点?我尝试过使用GIF动画,但质量明显降低。
谢谢!
这篇博客文章的海报部分指出了以下内容:
"如果您没有指定海报图像,浏览器可能只会显示填充元素尺寸的黑框。"
因此,你似乎无法通过简单地在video
元素中添加白色背景色来解决这个问题。。。但你可以添加一个简单的白色海报图像,如下所示:
<video width="320" height="240" autoplay="" poster="http://dummyimage.com/320x240/ffffff/fff" >
<source src="http://testingfortagpro.meximas.com/movie2.mp4" type="video/mp4">
</video>
您可以使用透明gif海报:
poster="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
但这还不足以消除Firefox中的闪烁。我最终把视频藏起来,直到它播放:
<video autoplay style="visibility:hidden;" onplay="var s=this;setTimeout(function(){s.style.visibility='visible';},100);">
根据需要调整超时。当不使用自动播放时,我不得不将其增加到400毫秒。
我遇到了同样的问题,并通过使用CSS display:none隐藏视频元素来解决这个问题,直到视频元素通过其onLoadedData事件发出完成加载的信号,作为对该事件的响应,我设置了display:block。
这消除了黑色闪光。
当用户刷新页面时,在视频标签中添加海报属性并不能阻止黑框闪烁,但我在"beforeunload"事件中使用了隐藏功能,现在黑闪光灯消失了。
$(window).on('beforeunload', function() {
$("video").hide();
});
即使设置了海报属性,我在Firefox中也遇到了同样的闪烁问题。我通过在视频标签中添加背景图像来解决这个问题,该标签对应于我视频的第一帧。
$(window).on('beforeunload',function(){$("video").hide();});
这将在窗口卸载和加载下一个文档之前隐藏视频元素。
我通过添加style="背景颜色:白色"到视频元素。
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- ThreeJS纹理加载:在火狐浏览器上黑色了一段时间
- Three.js:如何知道是否所有纹理都已完全加载并显示(并且没有黑色矩形残留)
- 删除HTML5视频上的黑色加载闪光灯
- 加载为黑色的Three.js纹理