有一个网站包含嵌入的YouTube视频,其源代码为
<object width="300" height="200"
data="http://www.youtube.com/embed/G7S5GEp****"
type="application/x-director">
<param name="url" value="http://www.youtube.com/embed/G7S5GEp****" />
<param name="src" value="http://www.youtube.com/embed/G7S5GEp****" />
<param name="sound" value="true" /><param name="progress" value="true" />
<param name="autostart" value="true" />
<param name="swstretchstyle" value="none" />
<param name="swstretchhalign" value="none" />
<param name="swstretchvalign" value="none" /></object>
问题是Opera和Chrome不播放此视频,显示灰色屏幕显示“不支持此插件”而不是视频。同时IE和Mozilla Firefox播放视频没有任何问题。我检查两台不同PC上的视频和浏览器的行为。
我发现 application / x-director 是Adobe Shockwave播放器视频。所以我认为这就是问题所在。但是,IE和Firefox在没有安装Shockwave的情况下播放视频。我尝试安装Shockwave,但Chrome和Opera没有在他们的chrome:// plugins或者opera://插件中看到Shockwave插件,但仍然没有播放视频。
然后我发现当我使用IE或Firefox观看视频并用鼠标右键点击它时,我会看到“关于html5播放器”的菜单,当我转到页面时我到youtube页面解释html5并检查我的浏览器是否支持html5(我的浏览器是最新的并且支持它)。
我还发现了SO问题Embedding a shockwave file in HTML5,其中告诉我的视频语法是HTML5语法:
<object data="..." type="application/x-director" ...></object>
我很感激能得到任何帮助。谢谢你的关注!
答案 0 :(得分:1)
将YouTube视频插入网站页面的最佳方法是什么? 命令它被大多数浏览器正确播放?
大多数浏览器都希望将视频文件放入视频标签中。由于您使用的是Youtube,因此您的页面链接(http)不是视频文件(mp4),因此您必须在i-frame中加载页面。当Youtube服务器看到请求时,他们将返回该链接的视频播放器......
使用此<object>
版本替换显示的基于<iframe>
的代码块...
<iframe width="300" height="200"
src="https://www.youtube.com/embed/G7S5GEp****">
</iframe>
也是关于......
application/x-director
是他们的一个小错误,应该是
application/x-shockwave
。它小因为它没有停止
机器运行......
<object>
标记不适用于嵌入http链接。要嵌入Flash应用程序,请将SWF文件(Flash输出)的链接作为输入源。例如:如果Android应用可以嵌入到浏览器中,那么它们也会进入<object>
data="mysite/myapp.APK"...etc
使用youtube.com/embed/
会为 HTML5 的播放器(<iframe>
代码)提供
使用youtube.com/v/
会提供基于 Flash 的播放器(<object>
标记)。
同样对于Flash,设置width="300" height="200"
对于来自其他服务器的输入而言太小,特别是Chrome会阻止它,因为它注意到它的横幅大小(Flash广告是自动的阻止)。必须至少有width="800" height="600"
,否则唯一的解决办法就是Youtube SWF应用程序(或任何其他SWF)必须与您自己服务器中的html文件位于同一文件夹中。