在 Plone 4.2 上使用 Dexterity 我创建了一个自定义类型,使用户能够上传 .ogg、.mp4、.webm 和 .swf 文件,然后使用<video>
元素显示这些文件。
我遇到了一个问题,Internet Explorer 似乎不知道如何获取swf文件。
以下是我的类型的视图:
<video width="320" height="240" controls autoplay>
<source src=""
tal:condition="context/ogg_video_file"
tal:attributes="src string:${context/absolute_url}/@@download/ogg_video_file/${context/ogg_video_file/filename}"
type="video/ogg"
/>
<source src=""
tal:condition="context/video_file"
tal:attributes="src string:${context/absolute_url}/@@download/video_file/${context/video_file/filename};"
type="video/mp4"
/>
<source src=""
tal:condition="context/webm_video_file"
tal:attributes="src string:${context/absolute_url}/@@download/webm_video_file/${context/webm_video_file/filename}"
type="video/webm"
/>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553549D43"
width="320" height="240" type="application/x-shockwave-flash">
<param name="movie"
tal:attributes="value string:${context/absolute_url}/@@download/swf_video_file/${context/swf_video_file/filename}"/>
<param name="flashvars" value=""/>
<param name="allowscriptaccess" value="always"/>
<param name="allowfullscreenaccess" value="true"/>
<param name="bgcolor" value="#FFFFFF"/>
<embed width="320" height="240" type="application/x-shockwave-flash"
tal:attributes="src string:${context/absolute_url}/@@download/swf_video_file/${context/swf_video_file/filename}"/>
</object>f]-->
</object>
</video>
在加载 Internet Explorer 8 或更低版本之前,一切都按预期工作,显然它不支持该<video>
元素,因此它会渲染该<object>
元素,但它似乎无法找到或播放 swf 文件。
我努力了:
- 搬到
<object>
外面<video>
- 使用SWFObject.js
- 测试相同的代码,但使用硬编码的 swf 文件并且没有 TALES (这在 IE 中有效)
- 分隔每个元素以查看所有 3 个标签 (
<video>
,<object>
,<embed>
) 以确保其中一个标签没有被另一个标签覆盖(它们仍然无法在 IE 中工作) - 按照 HTML 中的输出路径到 Inter Explorer 中的 SWF 文件(这有效,系统会提示我下载 swf 文件)
- 记下一个与 Plone 无关但类似的问题的答案 (不幸的是,这在这种情况下没有帮助)
所以我知道我的代码有效,但我不知道为什么我没有看到我的视频。当我右键单击视频应该在 IE 中的位置时,我只看到:
Movie not loaded...
About Adobe Flash Player 10...
如果您能对我的情况有所了解,将不胜感激。
当我尝试自己修复此问题时,将提供更多信息,我对我的代码有点怀疑
更新
<object>
将代码修改为以下内容后似乎:
<object
width="320" height="240" type="application/x-shockwave-flash"
tal:attributes="data string:${context/absolute_url}/@@download/swf_video_file/${context/swf_video_file/filename}"
id="swf_video">
<param name="movie"
tal:attributes="value string:${context/absolute_url}/@@download/swf_video_file/${context/swf_video_file/filename}"/>
<param name="flashvars" value=""/>
<param name="allowscriptaccess" value="always"/>
<param name="allowfullscreenaccess" value="true"/>
<param name="bgcolor" value="#FFFFFF"/>
</object>
Internet Explorer 似乎下载了 Flash 电影但不播放它。(我可以在页面加载时看到“剩余 1 项”的小消息,这需要很长时间才能消失,我认为这意味着它正在下载视频但仍未播放。右键单击视频仍然显示的位置我同样的Movie not loaded...
信息
一旦项目完成下载,我看到的框就会消失: