我知道我可以检查一下navigator.userAgent
如果设备是 iPhone,但还有其他设备,其中一些我不知道哪些设备会在其自己的播放器中播放视频。
可以列出所有不内联播放视频的浏览器/设备,但我想知道是否还有其他解决方案。
JavaScript 是否可以检测浏览器(例如 iPhone 上的 Safari)是否在其自己的播放器中而不是内联播放视频?因此可以显示替代方案,例如图像,而不是视频。
我知道这是一个老问题,但这对我来说是一个大问题,而且网上没有太多信息。但在我在这个帖子中找到 Alexey 的答案后,我可以回答你的问题:检测客户端是否允许 HTML5 视频的内联媒体播放 https://stackoverflow.com/questions/25451687/detect-if-client-allows-inline-media-playback-for-html5-video?rq=1.
不,您无法在播放之前检测浏览器/设备是否支持内嵌视频。
这是坏消息。问题是,对于 iPhone 上的 iOS Safari 等浏览器,唯一可靠的检查是开始播放视频,然后嗅探它是否立即进入全屏本机模式。即使您制作了一个在触发播放事件时自动进入全屏的播放器,也会失败。
至少对我来说,好消息是,通过在它开始播放时立即检测它并使用 CSS 媒体查询来检测屏幕尺寸,我应该能够完成我想要做的事情。
这是从我的播放器 JS 中获取的相关内容,很大程度上源自上面的链接。
这仅在视频开始播放后检测内联支持
// Expose useful properties of the video
var vid = (function(){
var elem = document.getElementsByTagName('video')[0];
return {elem:elem};
})();
// Test for inline playback support
var inlineTest = (function() {
if ( vid.elem.webkitFullscreenchange || vid.elem.mozFullscreenchange || vid.elem.MSFullscreenChange || vid.elem.fullscreenchange ) {
return 'inline-no';
} else {
return 'inline-yes'
}
});
// play() functions
vid.elem.onplay = function(){
var inlineSupport = inlineTest();
document.body.className += ' ' + inlineSupport;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)