大视频.js - 检查浏览器是否支持,背景图像回退
BigVideo.js - Check if supported by browser, background image fallback
我正在使用BigVideo.js(http://dfcb.github.io/BigVideo.js/),并希望能够检查浏览器是否支持它,如果没有,则显示背景图像。
这是我所拥有的:
var BV = new $.BigVideo({ //set container for video
container: $('#intro')
});
BV.init(); //initialise
if (Modernizr.touch) { //show background image for touch devices
BV.show('img/intro-bg.jpg');
} else {
BV.show('vids/bubble.mp4', { //set video format - x-browser support
ambient: true
});
BV.show('vids/bubble.webm', {
ambient: true
});
BV.show('vids/bubble.ogv', {
ambient: true
});
BV.show([{
type: "video/mp4", //make it loop
src: "vids/bubble.mp4"
}, {
type: "video/webm",
src: "vids/bubble.webm"
}, {
type: "video/ogg",
src: "vids/bubble.ogv"
}, {
ambient: true
}
]);
}
这在所有现代浏览器中都运行良好,但在旧版本的 Opera 中失败了。发生这种情况时,我们会看到一条错误消息,而不是视频:
无法加载视频,因为服务器或网络出现故障,或者格式不受支持。
与其显示这个,我更愿意回退到背景图像。我尝试了以下方法,但没有运气:
if( !BV ){
//show fallabck
}
和
if( !BV.init() ){
//show fallback
}
还有其他人想出一种方法来做到这一点吗?
试试这个:(在 Modernizr.touch 测试后坚持你的 else 块)
BV.getPlayer().ready(function(){
this.on('canplaythrough', function(){
// show fallback, eg:
$('#big-video-wrap').addClass('canplaythrough');
});
});
如果我在CSS和HTML中添加类canplaythrough
将起作用:
<div class="background">
<div id="big-video-wrap"><!-- this is auto-injected--></div>
</div>
<style>
#big-video-wrap { visibility:hidden; }
#big-video-wrap.canplaythrough { visibility:visible; }
.background { background:url(/** whatever your img is **/); }
</style>
这基本上有效,因为您可以使用 on
方法挂接到标准 w3c 视频事件。我相信这些也适用于闪光灯,但我仍然需要确认这一点。
希望这有帮助。
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- 可以在这里为背景图像设置滤镜吗
- 如何使用jquery更改html中的背景颜色
- 使用 js 将背景图像设置为 HTML
- 使用带括号的图像URL作为jQuery的背景
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- jQuery检测浏览器是否支持Zoom
- 将淡入淡出添加到“我的身体背景滑块”
- 错误:对象没有't支持'自动完成'
- EmberJS中支持单字母单词模型
- 检测对背景大小的支持:封面
- 使用modernizr为不支持webgl的浏览器提供备用背景图像
- 如何测试浏览器对背景剪辑的支持:文本
- 大视频.js - 检查浏览器是否支持,背景图像回退
- 从浏览器打印时检测背景图像和背景颜色支持
- 正文背景图像旋转应支持动态数量的图像
- 背景位置属性支持
- 检测支持背景附件:固定