【问题标题】:How to resize a YouTube player, from thumbnail size to 'normal' size如何将 YouTube 播放器的大小从缩略图大小调整为“正常”大小
【发布时间】:2009-08-21 23:41:24
【问题描述】:

我想这与 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,我'我非常乐意使用第三方插件(如果有这样的插件可以轻松做到这一点)。

感谢任何和所有帮助,我很抱歉问什么可能 - 并且在我看来 - 似乎是一个愚蠢的问题。 应该很明显,我猜。

提前致谢。

【问题讨论】:

    标签: jquery youtube jquery-1.3.2


    【解决方案1】:

    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 插件所做的唯一一件事就是获取缩略图的 url - 您可以获取大图或小图。

    【讨论】:

    • 我遇到的部分问题是,我对 JS 和 jQuery 是 完全 并且 完全 新手。虽然链接的页面可能是救生员,但我看着它却不知道如何使用它。代码示例 ($.jYoutube('rSUfWXcNAOw');) 对我来说毫无意义,我看不到如何访问应该返回的信息。文档都可以追溯到博客文章,我认为该文章是由已经了解 JS/jQuery 的人编写的,并且是为那些已经了解 JS/jQuery 的人编写的。感谢您的帮助,但我仍然迷路...
    • 您,先生,是个天才。我没有收到关于您的更新/编辑的提醒,所以我只能抱歉花了这么长时间才回复您并接受您的回答。
    【解决方案2】:

    因为直到现在我还没有看到安迪的更新,所以我想出了一个……相当可怕的方法来做到这一点(但我接受了他的回答,因为它比我的要好得多)。

            <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() 代码中。它工作,在时尚之后。但至少可以说,屏幕截图 -> 裁剪 -> 另存为 video-id.png 方法很乏味。我想我可能会保留我的解决方案——如果不出意外的话,这是一种可悲的自豪感——但我会尝试将它与 jYoutube 方法结合起来。

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


    作为更新,我使用 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>
    

    另外,我正在生成一个&lt;span class="close"&gt;&lt;a href="#"&gt;x&lt;/a&gt;&lt;/span&gt;,希望它可以与点击处理程序一起使用,以缩小 Flash 视频对象并用原始的.png 替换它。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2011-04-20
      • 2015-07-16
      • 2014-09-21
      • 2014-04-22
      • 2023-01-26
      相关资源
      最近更新 更多