我在頁面上動態插入一個未知尺寸的html5視頻標籤。我在loadedmetadata
事件中獲得了所有瀏覽器上的魅力。如何獲取動態插入的視頻在iPad上的尺寸? JavaScript
但是,據我所知,這個事件不會觸發,直到用戶觸摸ipad上的視頻。這使得真正難以獲得我需要的視頻的實際尺寸,以便確定它的容器大小。
有
- 拿到這將在此 情況下工作的視頻尺寸的另一種方式?或
- 一種觸發loadedmetaevent的方法?
謝謝!
CODE:
var src=fullPathToVideoWithoutExtension;
// DETECT WHICH FILE FORMAT TO USE
if($.support.browser.h264||$.support.mpeg4){
var supportedSRC=supportedSRC+'<source src="'+src+'.mp4" type="video/mp4">';
};
if($.support.browser.ogg){
var supportedSRC=supportedSRC+'<source src="'+src+'.ogv" type="video/ogg">';
};
// SETUP THE VIDEO ELEMENT
var $Video=$('<video id="Box_Video" controls>'+supportedSRC+'</video>');
$Video[0].src=src+'.mp4';
$Video[0].addEventListener('loadedmetadata',function(){
var width=this.videoWidth;
height=this.videoHeight;
},false)
這裏有一個小提琴: http://jsfiddle.net/Fv4XG/1/
注意的是,在瀏覽器,它會立即發出警告視頻的尺寸,但是在iPad上,你必須等待,直到有用戶它在拉動維度之前進行交互。如何在視頻插入DOM時像其他所有瀏覽器一樣獲取尺寸?
你不能在iPad上自動播放視頻,但我認爲你可以隱藏視頻元素並實現一個按鈕來啓動播放,然後在收到元數據事件後顯示元素。 – 2013-05-10 00:14:44
是的,我沒有嘗試自動播放它,但瞭解它不會在視頻信息開始播放前拉動視頻信息。它所在的容器開始隱藏,我需要將其調整到視頻尺寸並顯示容器。試圖找到一種方法來首先獲得視頻的尺寸。 – Aaron 2013-05-10 00:20:14
你可以做一個http://jsfiddle.net?我在這裏猜測,但播放視頻並立即暫停它可能會導致您需要觸發的事件。然後,您可以調整容器大小,顯示它,然後再次開始播放視頻。 – 2013-05-10 00:25:59