首页 文章

为什么iOS上的Safari没有显示我的HTML5视频海报?

提问于
浏览
31

我有这个网页:
http://healthpad.net/dashboard/
它上面有10个 <video> 元素 .

出于某种原因,当我在iPad上加载页面时,它没有显示视频海报 .

请尝试以下方法:

  • 在桌面浏览器上加载页面

  • 将它加载到iPad或iPad模拟器上,你会得到一个带有播放按钮的大黑盒子

image

请告诉我为什么会这样?

这是我已经排除的:

Image Content-Type header.
我已经验证了图像内容类型 Headers 已正确设置 . 在上面的示例中, Content-Type 标头正确 image/jpeg .

Interference with the video.js library
VideoJs用于在桌面浏览器上显示漂亮的播放按钮并自定义控件 . 但是,此库不会干扰本机播放器 .
为了确保,我've created a test video page which doesn't有视频-js类,所以该库甚至不包含任何JS库,它只是

<html><body>
    <video
        controls
        height="400"
        width="600"
        poster="http://healthpad.net/media/CACHE/images/uploads/video_poster_1414/bd5fba5a68ddd0f4b3f61193f6908962.jpg"
        src="http://healthpad.net/media/uploads/video_processed_720p_1414.mp4"
    ></video>
</body></html>

http://healthpad.net/rj_templates/test/zzz/

Usage of any video attributes that may not be supported on Mobile Safari
上面的测试页面只有一个普通的视频标签 . 我已经尝试删除除 srcposter 之外的所有其他属性,但它没有帮助 .

Most of the StackOverflow questions on the topic just say "Restart your iPad"

Here's where it gets weird:

如果您对此进行谷歌搜索,已经接受的StackOverflow上的答案通常会说“重启您的iPad,这对我来说就是这样” .

所以我尝试过做同样的事情,起初我只是说它在我的情况下不起作用 .

然后,我尝试了这个:
(iPad模拟器上的所有以下内容)

  • 访问该网站,视频海报不显示

  • 转到测试页面(http://healthpad.net/rj_templates/test/zzz/),视频海报不显示 .

  • 单击主页以退出Safari(或模拟器的Cmd Shift H mac快捷方式)

  • 双击主页按钮以获取Safari外部的任务切换器,点击并按住Safari图标,直到显示终止按钮 .

  • 杀死Safari

  • 开放野生动物园(重启) . 此时,如果您加载测试页面(只有一个视频),海报将会显示 .

  • 现在转到多视频页面:(http://healthpad.net/dashboard/) . 视频海报不显示 .

  • 返回单视频测试页面,该视频海报不再适用 .

  • 重复步骤3到8,查看视频海报何时停止工作的过程 .

显然, at some point, Mobile Safari decides it will no longer show any video posters . 此外,显然,我的网站触发了这种情况 .

Clarifications:

当海报不再有效时,它不会在一个完全不同的域上(例如来自http://www.videojs.com/的演示视频) .

为了重置这种行为,从我看到的,你必须杀死并重新启动Safari . 关闭并重新打开它不会重置此状态 .

有谁知道为什么会这样?有办法解决它吗?

3 回答

  • 2

    我通过使用PNG而不是JPG来实现这一点 .

    奇怪的是,JPG在本地的iOS Safari中工作(通过本地wifi上的POW服务器)但是当推送到分期时,海报图像没有加载 . 本地代码和临时代码都引用了S3上的相同文件 .

    将文件格式更改为PNG并加载正常 .

  • 14

    虽然没有答案,但我认为这个问题偶尔会被提升 . 所以这就是我最终做的事情:

    在iOS上,我不会显示视频播放器(即使是 autoload=false ),我只会显示海报和播放按钮,两个独立的 <img> 标签 . 当他们被点击时,我从javascript创建视频播放器并告诉它播放 . 工作正常,用户看不出太大差异 .

  • 0

    在Safari设置[iOS7] Block Pop-Ups转为“OFF”似乎为我解决了这个问题,希望这会有所帮助 .

相关问题