立即开始在Safari中加载视频

时间:2013-05-06 04:06:02

标签: javascript jquery video safari load

我已经设置了一些HTML5,一切都在加载跨浏览器。

我需要执行以下事件来提取视频尺寸:

$('#video').on('loadedmetadata',function(){
   var width=this.videoWidth, height=this.videoHeight;
   alert("meta has loaded!")
});

此警报适用于所有浏览器,但Safari除外。我一直在试着弄清楚为什么装载的元数据没有被解雇,但后来意识到,如果我开始播放电影......它会被解雇。

但是,我需要在播放之前检索视频的尺寸。有无法通过

在Safari中执行此操作
  • 强制Safari像其他浏览器一样加载元数据?
  • 使用除了loadedmetadata以外的其他方法?

更新:以下是苹果网站的确切代码:

<!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中不会发出警报,因为(我在猜测)它是如何加载视频的。

所以,我不知道如何解决这个问题。

谢谢!

0 个答案:

没有答案