Plone: ​​Как использовать тег видео html5 с типами контента? - PullRequest
0 голосов
/ 07 сентября 2010

У меня есть 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 голосов
/ 25 ноября 2010

Основная проблема связана с заголовком Content-Disposition.Вот пример с жестко закодированным форматом ogg / theora.Создайте скрипт 'inline_download' в вашей оболочке cutom с этим кодом внутри:

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"/>
0 голосов
/ 07 сентября 2010

Вам, вероятно, понадобится ссылка для скачивания - вам нужны чистые данные, а не представление по умолчанию 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?
  • что произойдет, если вы откроете URL загрузки напрямую?Браузер воспроизводит что-нибудь?
  • на что указывает src после рендеринга шаблона (view-source или inspect element).URL выглядит правильно?
...