Joe*_*phy 4 javascript jquery html5 html5-video ios
我当前项目的一部分涉及通过HTML5的原生视频标签加载外部视频,然后使用Javascript调整它们的大小,使其成为DOM的完整高度和宽度.
我的代码似乎在桌面浏览器上完美运行,但是当我在ipad上加载项目时,视频不会调整大小,因为onloadedmetadata事件永远不会被触发.
这是一个重现问题的小代码示例:
function init() {
var video = document.getElementById('viddy');
video.addEventListener('loadedmetadata', function(e){
var dimensions = [video.videoWidth, video.videoHeight];
alert(dimensions);
});
}
document.addEventListener("DOMContentLoaded", init, false);
<video id="viddy" autoplay>
<source src="http://media.w3.org/2010/05/sintel/trailer.webm" type='video/webm' />
<source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4" />
</video>
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/AUSNu/213/
我甚至尝试使用jQuery编写解决方案,但事件可能触发的可能性很小,但事实并非如此.
$('#viddy').on('loadedmetadata', function() {
alert('test');
});
Run Code Online (Sandbox Code Playgroud)
我甚至通过我的ipad上的safari启用远程调试,但在控制台中仍然没有输出.
这有什么变通方法吗?我无法在网络/文档中找到有关此内容的更多信息.
不幸的是,没有办法解决这个问题.移动Safari不会下载视频文件的任何部分,直到它获得用户交互(即某种触摸事件),甚至不需要知道尺寸所需的标题.
在您的特定示例中,您需要启用视频控件,以便用户可以开始播放.(或者您可以编写自己的代码来启动它,但它必须通过触摸或单击事件触发.)一旦开始播放,loadedmetadata甚至会触发,您可以执行您想要的操作.
我推荐在其他人试图做同样的事情时阅读这个其他答案.它更详细地讨论了问题以及工作链接.此外,它解决了扩展您可能遇到的视频的另一个问题.
iPad(iOS6)上的Safari不会缩放HTML5视频以填充100%的页面宽度
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |