i've setup html5 , loading cross-browser.
i'm needed perform following event pull video dimensions:
$('#video').on('loadedmetadata',function(){ var width=this.videowidth, height=this.videoheight; alert("meta has loaded!") });
this alerts in browsers, except safari. i've been pulling hair out trying figure out why loadedmetadata wasn't firing, realized if started playing movie... fired.
however, need retrieve dimensions of video before it's possible play it. there way in safari either by
- forcing safari load meta data earlier other browsers?
- use method other loadedmetadata?
update: here's exact code apple site:
<!doctype html> <html> <head> <title>resizing movies</title> <script type="text/javascript"> // set height , width 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>
however, event listener not fire until video invoked. means i'm unable pull dimensions until video begins playing. alert in other browsers, not in safari because of (i'm guessing) how it's loading video.
so, i'm not sure how resolve this.
thanks!
Comments
Post a Comment