0

次のようなビデオタグを使用したい 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: ブラウザーで最初または 2 番目の選択肢から返されたリンクをクリックすると、ブラウザーからダウンロード ウィンドウが開き、ファイルがダウンロードされます。

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()」は他のオプションに変更できます。

しかし、そのオプションはどれも機能しています。ビデオを再生するブロックがページに表示されますが、ビデオは再生されません。
どうすればこれを機能させることができますか?

4

2 に答える 2

0

主な問題は、'Content-Disposition' ヘッダーにあります。ハードコーディングされた ogg/theora 形式の例を次に示します。次のコードを含むスクリプト '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"/>
于 2010-11-25T13:18:15.637 に答える
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ですか?
  • ダウンロードURLを直接開くとどうなりますか?ブラウザは何かを再生しますか?
  • テンプレートをレンダリングした後、src は何を指しますか (view-source または inspect 要素)。URLは正しいですか?
于 2010-09-07T06:14:49.410 に答える