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

2024-02-24

我知道我可以检查一下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(使用前将#替换为@)

播放前检测浏览器/设备是否可以内嵌播放 HTML5 视频 的相关文章

  • 应用程序打开时处理推送通知

    我正在运行推送通知 有用 我收到通知并使用 application didReceiveRemoteNotification 获取传入数据 然后将用户发送到必要的屏幕 问题是 如果您正在使用该应用程序并收到通知 它会跳转到目标屏幕 而不会发
  • iOS 中的 CSV 逐行解析

    我正在 Objective c 中解析 CSV 文件 该文件包含如下内容 line 40 Rising searches line 41 nabi avc Breakout line 42 stonewall 700 line 43 med
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • 为什么 iPhone 上的纹理图像需要具有二维幂?

    我正在尝试解决 iPhone 上的闪烁问题 open gl es game 我有一些没有 2 维的图像 我将用具有适当尺寸的图像替换它们 但为什么尺寸需要是 2 的幂 大多数系统 甚至许多现代显卡 需要 2 的幂纹理的原因是 mipmap
  • 我如何获取用户的电子邮件? iPhone SDK

    我需要获取 Mail app 中使用的用户的电子邮件地址 如何使用 iPhone SDK 做到这一点 谢谢你 简短的回答 你不能 如果需要 您应该提示用户输入电子邮件地址
  • 核心数据 NSFetchRequest 还获取实体的子对象

    我是 iOS 开发和 Core Data 的新手 我有一个父 NSManagedObject class Units interface Properties NSManagedObject property nonatomic retai
  • 仅将 UIImage 移动到另一个 UIImage 内部

    I have an UIImage which is shown in an UIImageView I also have another image in an UIImageView which lays above the firs
  • iphone:在 UIWebView 之上查看?

    我正在开发一个浏览器应用程序 并且 UIWebView 顶部有一个地址栏 在 MobileSafari 上 如果向下滚动 地址栏开始移动到顶部 移出屏幕 并且 UIWebView 不会滚动 只有当地址栏完全消失时 它才开始滚动 我也想在我的
  • 如何适配iPhone 4屏幕分辨率?

    根据Apple http www apple com iphone specs html iPhone 4 拥有新的 更好的屏幕分辨率 3 5 英寸 对角线 宽屏多点触控显示屏960 x 640 像素分辨率 326 ppi 这个小细节对我们
  • UIWebView 中的 PDF

    我正在创建一个杂志应用程序 我在 UIWebView 中显示杂志的每一页 不过 Web 视图不会用 PDF 填满屏幕 它周围有一个边界 我怎样才能全屏显示它 我还没有使用 UIWebView 尝试过此操作 但您也许可以执行类似的操作来以编程
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 按下表格视图单元格时更改视图?

    我需要帮助 当我的 tableView 的单元格被选择时 我希望该单元格转到它自己的页面 我不希望每个单元格都转到同一页面 我尝试使用 FirstFolderViewController first FirstFolderViewContr

随机推荐

  • 在仪器测试期间将大写字母发送到 TextEdit

    我正在为我的 Android 应用程序编写 JUnit 测试用例 测试类扩展ActivityInstrumentationTestCase2并打电话sendKeys 模拟用户输入TextEdit小部件 但是 所有字母键码 例如KeyEven
  • Docker无法访问jar文件

    docker 容器无法访问通过挂载点访问的 jar 文件 my project dir 我确信这不是权限问题 因为我在本地更改了访问权限 所以它应该能够读 写 执行它 这是Dockerfile FROM tomcat 9 jre8 RUN
  • 在 .cshtml 页面中发送和接收数据

    我正在做我的作业 其中我正在 asp net MVC 3 中开发一个购物网站 目前我仅在视图中完成我的工作 我有一个产品页面 单击详细信息后 我必须打开产品详细信息页面 a href ProductDetails cshtml Detail
  • 是否可以在编译时阻止特定基类的多重继承?

    我想要做的是开发两个不同的基类 这两个基类不应在一个派生类中一起继承 有什么方法可以在编译时强制执行此操作吗 class Base1 class Base2 class Derived1 public Base1 OK class Deri
  • 使用 Appium 和 C# 在 Android 模拟器的浏览器中找不到元素

    我想使用 C 和 Appium 在 Android 模拟器上自动化移动网站测试 我想首先自动化一个简单的测试场景 1 启动浏览器2 查找元素3 清除它4 发送密钥 我的第二步有问题 每次 MSTest 尝试执行下面代码中的 FindElem
  • 为什么下面的 Haskell 代码是不确定的?

    我一直在学习 Haskell学习 Haskell http learnyouahaskell com chapters and 刚刚遇到以下声明 http learnyouahaskell com functors applicative
  • 使用 ssl 证书进行 pg_restore

    有人可以帮助我使用 SSL 证书恢复 postgres 数据库吗 我尝试了以下方法 但没有成功 pg restore host hostname user username dbname database name sslcert sslc
  • 如何在bootstrap中将div居中居中?

    我想将 7 个 div 居中 但我不知道该怎么做 任何想法 我不想单独更改所有元素的边距 正如您在图片上看到的那样 与我的按钮相比 div 不居中 并且存在 12 列引导问题
  • iOS ARM64 系统调用

    我正在学习更多关于 shellcode 以及在 iOS 设备上使用 arm64 进行系统调用的知识 我测试的设备是 iPhone 6S 我从此链接获取了系统调用列表 https github com radare radare2 blob
  • 如何强制执行“override”关键字?

    有没有办法强制使用 C 11overrideVisual C 2012 中的关键字 也就是说 如果我忘记说override 然后我想得到警告 错误 C 11几乎有你想要的 原来是override关键字是更大提案的一部分 N2928 http
  • Google Places API 未返回印度的任何结果

    https maps googleapis com maps api place search json location 28 635704 77 224982 radius 50000 types restaurant language
  • SQL Server中删除表和删除表有什么区别?

    在 SQL Server 中 以下两者有什么区别 右键单击数据库对象 表 视图 并选择 删除表 即将表脚本编写为 gt DROP To gt New Query Editor Window 右键单击数据库对象 表 视图 并选择删除 我尝试了
  • Chrome 不缓存 css 文件。缓存适用于 .js/.png 文件。

    我观察到 CSS 文件没有在 Chrome 浏览器上缓存 我的应用程序是由 Angular CLI 构建的 所有必需的缓存控制标头和 Expires 标头均设置为 5 分钟 Accept Ranges bytes Cache Control
  • 在 R 中绘制多行文本框

    我正在使用 R 创建多图布局插图 并且能够在其中一个图中创建多行文本框会很方便 我熟悉使用 Sweave 来组合图像 文本和 R 代码 但是由于各种原因 我需要将其作为在 R 中生成的单页图 因此需要绘制文本框而不是使用 Latex 标记
  • GET_TASKS 权限已弃用

    我有一个使用此权限的安全应用程序 App Locker android permission GET TASKS 在 android Lollipop 中 此权限已被弃用 我希望我的应用程序可以在 21 API 中运行 谁能指导我怎么做 T
  • JPADatabase 的 jooq codegen 无法正常工作

    我在 JPADatabase 中使用 jooq codegen 时遇到问题 我经历过这个post https stackoverflow com questions 42968155 unable to generate jooq clas
  • 如何使用 javascript/jquery 获取具有特定文本的元素的类名称?

    我需要一种 JavaScript 或 jQuery 方法来通过 DIV 元素包含的文本提取 DIV 元素的类名 让我们举例说明 如果我有的话 我们可以说以下代码 div class className UniqueText div 我需要知
  • 用于设置主页功能的通用 JavaScript [重复]

    这个问题在这里已经有答案了 是否有任何适用于几乎所有浏览器的 javascript 将网页设置为主页 我正在使用下面的一种 但它只适用于 i e 和 mozilla var flag false function setHomepage w
  • Scalac 挂在 RegexParser 的阶段类型上

    我有一个 scala 程序 其中有一个解析器组合器 这是通过扩展来完成的scala util parsing combinator RegexParsers 我使用 Scala 2 10 开发它 一切正常 昨天我将系统升级到了 Scala
  • 播放前检测浏览器/设备是否可以内嵌播放 HTML5 视频

    我知道我可以检查一下navigator userAgent如果设备是 iPhone 但还有其他设备 其中一些我不知道哪些设备会在其自己的播放器中播放视频 可以列出所有不内联播放视频的浏览器 设备 但我想知道是否还有其他解决方案 JavaSc