Plone:如何使用带内容类型的html5视频标签?

时间:2010-09-06 23:50:13

标签: plone zope html5-video zpt

我有一个zpt(zope页面模板),我想使用视频标签,例如:

<video src="FILE_LOCATION" width="320" height="240" type='video/ogg; codecs="theora, vorbis"' controls></video>

其中FILE_LOCATION是plone的内容类型。我可以使用3种方式来访问文件:

1) file.download_url #gives me: http://localhost:8000/a/acervo/testeflv2/at_download/file
2) file.absolute_url #gives me: http://localhost:8000/a/acervo/testeflv2
3) file.getFile() #gives me the file (like if I open the video file on a text editor)

obs:如果我在浏览器上单击第一个或第二个选项返回的链接,它会从浏览器打开下载窗口以下载文件。

在zpt上,我可以这样做:

<video src="" id="video_play" width="320" height="240" type='video/ogg; codecs="theora, vorbis"' controls
       tal:attributes="src python:file.absolute_url()"></video>

其中“python:file.absolut_url()”可以更改为其他选项。

但任何选项都有效。该页面显示了应播放视频的块,但没有播放视频。
我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可能需要下载链接 - 您需要纯数据,而不是Plone默认视图。

<video src="" id="video_play"    width="320" height="240"    type='video/ogg; codecs="theora,    vorbis"' controls tal:attributes="src    file/download_url"></video>

如果不起作用:

  • 您的浏览器是否支持.ogg? (尝试使用firefox和chrome)
  • 真的是ogg?
  • 如果直接打开下载网址会怎样?浏览器会播放什么吗?
  • 渲染模板(view-source或inspect元素)后src指向的是什么。该网址看起来是否正确?

答案 1 :(得分:0)

主要问题来自'Content-Disposition'标题。这里有一个硬编码ogg / theora格式的例子。 使用以下代码在你的cutom皮肤中创建一个脚本'inline_download':

RESPONSE =  container.REQUEST.RESPONSE

filename = context.getFilename()
obj = context.getFile()
RESPONSE.setHeader('Content-Disposition', 'inline;filename="%s"' % filename)
RESPONSE.setHeader('Content-Type', 'video/ogg')

return obj

现在http://yourpath/video/inline_download应该正确显示视频而不需要额外的HTML。

最后在您的视图中添加此代码:

<video height="240px" width="320px" type="video/ogg; codecs='theora, vorbis'"
       controls="controls" preloas="none"
       tal:attributes="src string:${here/absolute_url}/inline_download"/>