Javascript 下面是YouTube播放器“;最低限度;大小

Javascript 下面是YouTube播放器“;最低限度;大小,javascript,css,youtube,youtube-api,youtube-javascript-api,Javascript,Css,Youtube,Youtube Api,Youtube Javascript Api,YouTube API文档将嵌入式播放器t的最小大小定义为200px x 200px() 为了给关键的播放器功能留出空间,播放器必须至少在200px到200px之间 我的测试让我得出结论,这是真的。如果我试图在一个小于最小尺寸的播放器中播放视频,我会收到一条错误消息,上面写着“视频播放器太小了”,视频将无法播放 但是,较小的参与者是可能的,例如,在页面上使用它们 我试着通过设置球员的高度和宽度属性,使用球员的风格属性,以及将球员包装在一个包含球员的高度和宽度设置的元素中来减少球员的大小。这些选

YouTube API文档将嵌入式播放器t的最小大小定义为200px x 200px()

为了给关键的播放器功能留出空间,播放器必须至少在200px到200px之间

我的测试让我得出结论,这是真的。如果我试图在一个小于最小尺寸的播放器中播放视频,我会收到一条错误消息,上面写着“视频播放器太小了”,视频将无法播放

但是,较小的参与者是可能的,例如,在页面上使用它们

我试着通过设置球员的高度和宽度属性,使用球员的风格属性,以及将球员包装在一个包含球员的高度和宽度设置的元素中来减少球员的大小。这些选项似乎都不起作用

我还可以尝试减少播放器的大小吗

编辑


似乎有些视频将在真正的小型播放器中播放,但其他视频则不会。如果您要测试一个潜在的解决方案,请使用此视频ID:
-rMTExNTx2s

不是最优雅的解决方案,但您是否考虑过使用此属性缩小较大的播放器?注意IE<9中不支持它


但是,不这样做的主要原因是,您将减小UI控件的大小,从而降低可用性。

似乎对某些视频有限制,不允许嵌入小于200*200(px)的视频。这个限制并不适用于所有视频(可能比上一次更新youtube API旧,我不知道)

经过一些测试后,当youtube player readystate更改为状态:
PlayerState.PLAYING(evt.data==1)

因此,作为一种基本解决方法,您可以在更新SATU后“动态”更改iframe的大小,请参见下面的演示和代码:

正如您在本演示中看到的,我使用css
.hidden{opacity:0}
设置了一个隐藏类。这用于在加载视频之前隐藏播放器。使用
显示:无不起作用,这肯定是另一个API限制。
仍然在这个演示中,您必须等到视频开始播放,才能看到播放器出现。

您现在必须找到适合您需要的最佳解决方案,例如使用缩略图,并在readystate发生更改时从负偏移播放机移动到所需位置,希望您能想到。

谢谢您的想法,我现在就尝试一下。UI控件的大小不是一个大问题,因为我正在实现自己的控件。不幸的是,它不起作用。YouTube检测到播放器“太小”,拒绝播放视频。我认为,当你在YouTube网站上时,这项试验只会让你获得HTML5播放器。我说的是使用YouTube播放器API,两者是完全不同的。我不完全确定这是真的。我开始为我编写的jQuery插件(tubeplayer:)创建单元测试,我注意到,如果启用了试用版,最小播放器大小错误(onErrorNotEmbeddable)实际上不会被抛出。基本上,如果启用试用模式,我可以将视频设置为<(200200),而不会出现任何问题。我想更好地理解这种行为,因为它看起来更像是一个bug,而不是其他任何东西(基于他们的文档)。但似乎我必须要求所有用户启用该试用版,否则他们会看到错误。我觉得这不是一个可行的解决办法。如果YouTube整合了该试验的功能,情况可能会有所改善。接下来,你说得对,这不是一个可行的解决方案。我只是好奇。那把小提琴能用……它能做你想做的。那么现在的问题是什么呢?它适用于示例中使用的特定视频。它不适用于所有视频(更重要的是,它不适用于我需要它的特定视频集)。如果我更改了视频ID,它会断开:如果你能让它在我的小提琴上使用视频ID,或者解释为什么它适用于一个视频而不适用于另一个视频,我会接受。谢谢。@A.Wolff如何使其不自动播放?
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;
     }
 }