如何调整YouTube播放器的大小,从缩略图大小调整为“正常”大小

时间:2009-08-21 23:41:24

标签: jquery youtube jquery-1.3.2

我想这与Facebook的做法相似,但是......我还没有弄清楚如何遵循他们的行为,如果这是一个骗局,我道歉。

我们的想法是拥有一个缩略图大小的播放器(width="220px" height="180px"),当点击它时,会调整为“正常”大小(当然,正常是任意的,但是为了这个示例,如果我们使用width="445px"height="364px"作为Youtube默认值,然后播放。

我假设onClick事件应该更改<object><embed>标记中定义的高度和宽度属性,但由于对象是flash,我认为Flash播放器“捕获”了点击次数而不是将它们报告给浏览器?

以下视频是我打算使用的视频之一,并在此提供一个真实的示例:

<object class="yt" width="445" height="364">
<param name="movie" value="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed>
</object>

作为附录,这可能会在静态html页面中使用一段时间,之后不久就被移到php(5.2)站点,php和html都有jQuery 1.3.2链接,而且我'我很乐意使用第三方插件,如果存在这样的插件很容易。

我们很感激所有的帮助,对不起,我很抱歉,对我来说这可能是什么,而且对我来说似乎是一个愚蠢的问题。我想,它应该是显而易见的。

提前致谢。

2 个答案:

答案 0 :(得分:5)

Facebook使用一个看起来像玩家的缩略图 - 整洁的技巧。我发现jQuery plugin可以获得youtube缩略图,但我还没试过。

一些示例代码:

<div id="youtoobin">

</div>

<div id="blarg" style="display:none">
    <object class="yt" width="445" height="364">
    <param name="movie" value="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed>
    </object>
</div>

和JS:

<script>
    $(function() {
    $("#youtoobin").append("<img id='thumby' src='" + $.jYoutube('2ieLb3RAblA', 'small') + "'/>");

        $("#thumby").live("click", function() {
            $("#youtoobin").html($("#blarg").html());
        });
    });
</script>

我开启了自动播放,因为如果用户点击图片,您可能需要这样做。这应该是集成到您的应用程序的良好起点。 jQuery插件唯一能做的就是获取缩略图的网址 - 你可以得到一个大图像或小图像。

答案 1 :(得分:2)

因为我现在没有看到Andy的更新,所以我想出了一个......相当可怕的方法(但是我接受了他的回答,因为它比我的好得多)。

        <script type="text/javascript">
  $(document).ready(function(){

    $("img").click(function () {

    var videoID = $(this).attr("id");

    $(this).replaceWith("<object class=\"yt\" width=\"445\" height=\"364\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"445\" height=\"364\"></embed></object>");

    });

  });

        </script>

与以下html一起使用:

<dl>
<dt>Thoughts of Sacrament</dt>
<dd><img src="img/H5ZEYFgmfYo.png" id="H5ZEYFgmfYo" class="yt" /></dd>

<dt>Sanity falling</dt>
<dd><img src="img/2ieLb3RAblA.png" id="2ieLb3RAblA" class="yt" /></dd>
</dl>

我的解决方案,从点击的图片中获取#id属性,然后将其插入replaceWith()代码中。它在时尚之后起作用。但截图 - &gt;裁剪 - &gt;保存为video-id.png的方法至少可以说是乏味的。我想我可能会保留我的解决方案 - 如果没别的话,这是一种可悲的骄傲 - 但我会尝试将其与jYoutube方法结合起来。

如果这不起作用,那么我将使用Andy的答案。

<小时/> 作为更新,我使用jQuery的animate()

使事情变得更加优雅。
<script type="text/javascript">
$(document).ready(function(){

    $("img").click(function () {

        var videoID = $(this).attr("id");

        $(this).animate({ 
        width: "445px",
        height: "364px"
        }, 600, function() { 

            $(this).replaceWith("<object id=\"" + videoID + "\" class=\"yt\" width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object><span class=\"close\"><a href=\"#\">x</a></span>");
        });
    });

});
        </script>

此外,我正在生成一个<span class="close"><a href="#">x</a></span>,希望通过点击处理程序提供服务,将Flash视频对象缩小并将其替换为原始.png

这是......如果我能弄清楚为什么jQuery不会让它有$(this).click();事件......

有时我只是希望我知道什么时候停止......感谢任何帮助...... =)