gpt4 book ai didi

iphone - 播放前检测浏览器/设备是否可以内嵌播放 HTML5 视频

转载 作者:行者123 更新时间:2023-12-03 18:33:06 25 4
gpt4 key购买 nike

我知道我可以通过 navigator.userAgent 检查该设备是否是 iPhone,但还有其他设备,其中一些我不知道哪些设备会在其自己的播放器中播放视频。

可以列出所有不内联播放视频的浏览器/设备,但我想知道是否还有其他解决方案。

JavaScript 是否可以检测浏览器(例如 iPhone 上的 Safari)是否在其自己的播放器中而不是内联播放视频?因此可以显示替代方案,例如图像,而不是视频。

最佳答案

我知道这是一个老问题,但这对我来说是一个大问题,而且网上没有太多信息。但在我在这个线程中找到Alexey的答案后,我可以回答你的问题:Detect if client allows inline media playback for HTML5 video .

不可以,您无法在播放前检测浏览器/设备是否支持内嵌视频。

这是个坏消息。问题是,对于 iPhone 上的 iOS Safari 等浏览器,唯一可靠的检查是开始播放视频,然后嗅探它是否立即进入全屏 native 模式。即使您制作了一个在触发播放事件时自动进入全屏的播放器,也会失败。

至少对我来说,好消息是,通过在它开始播放时立即检测它并使用 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;
};

关于iphone - 播放前检测浏览器/设备是否可以内嵌播放 HTML5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com