显示Flash播放器代替URL

时间:2009-07-07 18:32:19

标签: delphi flash

Yahoo IM有一个巧妙的伎俩。如果您发布了一个指向YouTube视频的网址链接,则会在其中显示加载了该网址视频的Flash播放器。

我想为我的基于Delphi(7)的聊天室(www.magchat.com)做同样的事情。显示组件是TRichView。

我搜索谷歌并发送大量电子邮件但没有任何成功......任何人都有任何建议吗?

我想要实现的效果是当用户在聊天程序中使用TRichView组件向youtube发布URL链接时......程序会生成一个flash播放器而不是url,从网址链接播放的电影。我不知道如何解决这个问题,但正如我所说,我已经在Yahoo的IM程序中看到了这一点,所以它显然是可能的。

没有任何方法可以在我知道的TRichView组件中嵌入twebbrowser。我假设当检测到网址时,这必须是某种闪存播放器。 TRichView组件支持闪存。

我希望这很清楚。我不确定我的初步问题是否完全清楚。

提前致谢,

马克甘迪 www.magchat.com

4 个答案:

答案 0 :(得分:1)

每当您看到带有http://www.youtube.com/watch参数的v网址时,只需添加以下HTML代码段:

<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/[video-id]&hl=en&fs=1&">
</param>
<param name="allowFullScreen" value="true">
</param>
<param name="allowscriptaccess" value="always">
</param>
<embed src="http://www.youtube.com/v/[video-id]&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
</embed>
</object>

使用网址中的[video-id]参数替换每次出现的v

上面的HTML代码段只是直接从页面中获取随机YouTube视频的“嵌入”代码。您可以调整一些参数,如大小等。

答案 1 :(得分:0)

TRichView已经知道如何显示HTML,对吗?您不需要在其中嵌入TWebBrowser。那么你不能插入Laurence's answer演示的HTML吗?你说组件毕竟支持Flash。

如果事实证明TRichView 不支持Flash,那么请尝试将其作为Delphi控件嵌入。 You already asked how to do that. TRichView表示它知道如何插入Delphi控件,因此将Flash ActiveX播放器导入Delphi;这将定义一个Delphi组件,您应该能够将其置于TRichView

答案 2 :(得分:0)

为了能够在Delphi win32应用程序中嵌入youtube视频,您需要将flash activeX控件包装到一个组件中,所以Watch this video

要显示视频,只需设置TShockWaveFlash组件的movie属性即可。如果您的网址为http://www.youtube.com/watch?v=oGeCqRfRAcQ,请将其转换为http://www.youtube.com/v/oGeCqRfRAcQ&hl=en&fs=1

视频似乎需要一段时间才可用,并且在我第一次运行应用程序时似乎没有工作,不知道为什么,但我会让你解决这个问题(这是我第一次)我试过这个)。

答案 3 :(得分:0)

您可能还想查看oEmbed。这是请求媒体文件的嵌入版本的标准方法,因此您不必执行其他用户推荐的任何搜索/替换。以下是YouTube示例:

您有一个YouTube网址:

http://youtube.com/watch?v=M3r2XDceM6A

您向YouTube的oEmbed端点发出请求以获取嵌入代码:

http://www.youtube.com/we/love/oembed/?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json

他们返回一个包含HTML代码段的JSON响应:

{
    "version": "1.0",
    "type": "video",
    "provider_name": "YouTube",
    "provider_url": "http://youtube.com/",
    "width": 425,
    "height": 355,
    "title": "Amazing Nintendo Facts",
    "html":
        "<object width=\"425\" height=\"355\">
            <param name=\"movie\" value=\"http://www.youtube.com/v/M3r2XDceM6A&hl=en\"></param>
            <param name=\"wmode\" value=\"transparent\"></param>
            <embed src=\"http://www.youtube.com/v/M3r2XDceM6A&hl=en\" type=\"application/x-shockwave-flash\"
                wmode=\"transparent\" width=\"425\" height=\"355\"></embed>
        </object>",
}
许多其他网站也支持oEmbed:Flickr,Viddler,Qik,Hulu,Vimeo等。