我正在尝试在我的页面上嵌入视频,具体取决于用户在显示列表后选择的视频。 在我的页面上我有:
<div id="vidContent" style="text-align:left">
<object width="550px" height="350px" >
<asp:Literal ID="ltlVideo" runat="server"></asp:Literal>
</object>
</div>
在我背后的代码中:
Dim strVidPath As String = "http://www.youtube.com/v/" & strVidID
ltlVideo.Text = "<embed src='" & strVidPath & "' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' height='350' width='470'></embed>
phVideoBanner.Visible = True
...
哪个有效......如果你有“strVidID”
如果您有strVidPath = www.youtube.com/v/_O7iUiftbKU
,它似乎只能显示和播放但是不能播放strVidPath = www.youtube.com/watch?v=_O7iUiftbKU ....这在观看YouTube视频时似乎是地址栏中的正常网址。
我希望用户能够向页面添加视频,我认为如果粘贴在视频网址中会更容易,但现在看来我必须将它们粘贴到videoID中相反,因为它似乎只在我使用www.youtube.com/v/_O7iUiftbKU时播放
任何人都知道这是为什么?
答案 0 :(得分:2)
您可以使用oEmbed service为自己制作嵌入代码,而不是尝试解析YouTube观看页面网址并自行构建嵌入代码。
如果您需要取回旧版嵌入代码而不是iframe嵌入代码,则需要将iframe=0
作为其中一个网址参数传递给oEmbed服务,例如:http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch%3Fv%3DbDOYN-6gdRE&format=json&iframe=0
答案 1 :(得分:1)
正如您所指出的,其中包含“watch”一词的网址结构是Youtube的面向公众的网页,其中包含的内容远远超过视频...它包含您在网页上看到的所有其他内容好。从本质上讲,它是一个解析为HTML页面的指针,并且您不能将HTML页面作为嵌入元素的源。
正确的URL结构(即工作的URL结构)不是指向HTML页面的指针,而是直接解析为播放器本身的指针,因此可以作为嵌入元素的源。
这是指向Stack Overflow问题的链接,其答案包括一个C#代码块,它将常规YouTube网址(以任何形式)作为输入,进行正则表达式匹配,并仅返回Youtube ID - 应该是根据您的需要修改它非常简单...因此您仍然可以继续让用户粘贴整个视频网址: