我已经设置了一些HTML5,一切都在加载跨浏览器。
我需要执行以下事件来提取视频尺寸:
$('#video').on('loadedmetadata',function(){
var width=this.videoWidth, height=this.videoHeight;
alert("meta has loaded!")
});
此警报适用于所有浏览器,但Safari除外。我一直在试着弄清楚为什么装载的元数据没有被解雇,但后来意识到,如果我开始播放电影......它会被解雇。
但是,我需要在播放之前检索视频的尺寸。有无法通过
在Safari中执行此操作更新:以下是苹果网站的确切代码:
<!doctype html>
<html>
<head>
<title>Resizing Movies</title>
<script type="text/javascript">
// set height and width to native values
function naturalSize() {
var myVideo = document.getElementsByTagName('video')[0];
myVideo.height = myVideo.videoHeight;
myVideo.width = myVideo.videoWidth;
alert("pulling dimensions!")
}
// register listener function on metadata load
function myAddListener(){
var myVideo = document.getElementsByTagName('video')[0];
myVideo.addEventListener('loadedmetadata', naturalSize, false);
}
</script>
</head>
<body onload="myAddListener()">
<video src="http://homepage.mac.com/qt4web/myMovie.m4v" controls>
</video>
</body>
</html>
但是,在调用视频之前,事件侦听器不会触发。这意味着在视频开始播放之前我无法拉出尺寸。这会在其他浏览器中发出警报,但在Safari中不会发出警报,因为(我在猜测)它是如何加载视频的。
所以,我不知道如何解决这个问题。
谢谢!