Bin*_*man 20 html javascript iphone device-detection mediaelement.js
所以我在我的网站上提供H.264 .mp4视频.我正在使用开源HTML5视频播放器http://mediaelementjs.com/.一些访问者正在从Safari for iPhone查看.iPhone 4仅支持高达720p的视频播放,因此如果我将视频设置为小于此值,则可以使用4和4S.但4S支持高达1080p的视频.那么我如何为4S提供更大的视频,为4提供更小的视频呢?我试过这个:
<video width="640" height="400" id="player" controls="controls" preload="auto">
<source src="https://s3.amazonaws.com/my-big-1080p-video.mp4" type="video/mp4">
<source src="https://s3.amazonaws.com/my-small-720p-video.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
但它没有用.iPhone 4不够智能,无法尝试第二个来源.如何让我的网站为不同的设备提供正确的视频?
<video src="http://file.brow.sr/1080p.mp4" onerror="this.src='http://file.brow.sr/720p.mp4';" controls loop width="320" height="180">
</video>Run Code Online (Sandbox Code Playgroud)
加载1080p视频,然后使用Javascript's onError回落到720p.
Safari将嗅探1080p文件的标题以确定它是否可播放,如果它太大而无法解码则会引发错误.然后我们捕获该错误以提供720p视频.
通过使用这种特征检测,后备不仅可以在一个设备(iPhone 4)上运行,而且可能在许多不同功能的浏览器上运行.
<source>不会起作用当使用具有相同MIME类型的多个<source>标签时,浏览器将加载具有兼容MIME类型的第一个源并丢弃其他类型,即使该视频不可播放也是如此.这是因为期望source元素提供替代视频编解码器(例如ogg,webm,mp4),而不是替代帧大小/文件大小.
| 归档时间: |
|
| 查看次数: |
7048 次 |
| 最近记录: |