看起來有一些視頻的限制,不允許嵌入視頻的尺寸小於200 * 200(px)。此限制不適用於所有視頻(可能比上次更新的youtube API舊,我不知道)。
一些測試後,當YouTube播放器的readyState改變狀態這一限制適用:PlayerState.PLAYING (evt.data === 1)
所以,作爲一個基本的解決辦法,可以「隨時」的薩特斯更新後改變iframe的大小,請參閱下面演示&代碼:
DEMO
var player,
myWidth = "114px",
myHeight = "65px";
function onYouTubePlayerAPIReady() {
player = new YT.Player('testVideo', {
height: myWidth,
width: myHeight,
videoId: '-rMTExNTx2s',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
},
playerVars: {
controls:0,
showinfo:0
}
});
}
function onPlayerStateChange(evt) {
if (evt.data == -1) {
evt.target.a.width = "200px";
evt.target.a.height = "200px";
}
else if (evt.data == 1) {
evt.target.a.className = "";
evt.target.a.width = myWidth;
evt.target.a.height = myHeight;
done = true;
}
}
正如你可以在這個DEMO SSEE,我設置了一個隱藏類的CSS .hidden{opacity:0}
。這用於在視頻加載之前隱藏播放器。使用display:none;
不起作用,肯定會有其他API限制。 仍然在這個DEMO中,你必須等到視頻開始播放才能看到播放器出現。 現在,您已經找到了最適合您的需求的解決方案,例如縮略圖圖像,以及在readystate發生變化時從負偏移播放器移動到所需位置,希望您明白了。
http://www.youtube.com/html5 < - 好奇,您是否參加了試用? – 2013-05-03 01:28:25
我認爲,當您在YouTube網站上時,試用版會讓您獲得HTML5播放器。我正在討論使用YouTube播放器API,這是一個不同的事情。 – 2013-05-03 07:01:55
我不完全確定這是真的。我開始爲我編寫的jQuery插件創建單元測試(tubeplayer:https://github.com/nirvanatikku/jQuery-TubePlayer-Plugin),我注意到最小播放器大小錯誤(onErrorNotEmbeddable)實際上並沒有被拋出if我啓用了試用版。基本上,如果我已啓用試用模式,則可以將視頻設置爲<(200,200),而不會有任何問題。我想更好地理解這種行爲,因爲它看起來更像是一個比其他任何東西都更多的bug(基於他們的文檔)。 – 2013-05-03 14:59:25