2010-09-06 15 views
0

J'ai un ZPT (Zope modèle de page), où je veux utiliser une balise vidéo, quelque chose comme:Plone: ​​Comment utiliser la balise vidéo html5 avec les types de contenu?

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

où FILE_LOCATION serait un type de contenu de plone. Je peux utiliser soit 3 façons d'acces du fichier:

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: Si je clique sur le lien renvoyé à la première ou le deuxième choix sur un navigateur, il ouvre la fenêtre de téléchargement du navigateur pour télécharger le fichier.

Sur le ZPT, je peux faire quelque chose comme ceci:

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

où "python: file.absolut_url()" peut être modifiée pour que d'autres options.

Mais toutes ces options fonctionnent. La page me montre un bloc où la vidéo devrait être jouée, mais aucune vidéo n'est jouée.
Comment puis-je faire ce travail?

Répondre

0

Vous aurez probablement besoin du lien de téléchargement - vous voulez des données pures, pas une vue Plone par défaut.

à savoir

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

Si cela ne fonctionne pas:

  • Est-ce que votre visionneur .ogg? (Essayez avec à la fois firefox et chrome)
  • est-ce vraiment ogg? Que se passe-t-il si vous ouvrez l'url de téléchargement directement?
  • Est-ce que le navigateur joue quelque chose?
  • à quoi pointe src après le rendu du modèle (élément view-source ou inspect). L'URL semble-t-elle correcte?
+0

Je trouve que mon serveur doit sert les fichiers vidéo avec Content-Type: vidéo/ogg peu importe qu'ils aient ou non l'extension .ogv ou non, sur le MimeType de la demande. Avez-vous une idée de comment puis-je faire cela sur le zpt (modèle de page zope)? –

+0

Je ne pense pas que le modèle de page est pertinent ici, l'objet de fichier réel est ce qui a besoin de l'en-tête mime. Peut-être que tout ce que vous devez faire est d'enregistrer le type MIME dans mimetypes_registry. –

0

Le principal problème provient de l'en-tête 'Content-Disposition'. Voici un exemple avec le format ogg/theora codé en dur. Créer un script « inline_download » dans votre peau cutom avec ce code à l'intérieur:

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 

maintenant http://yourpath/video/inline_download devrait afficher correctement la vidéo sans html supplémentaire.

Enfin, ajoutez ce code dans votre vue:

<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

Merci beaucoup! Je ne sais pas encore si cela va marcher pour moi, mais je vais essayer de vous le faire savoir. Merci de faire attention. –

+1

ne fonctionnait pas. Un carré noir a été montré, mais même lorsque je clique sur le bouton Lecture, le carré reste noir, et les boutons changent de couleur, le blanc devient gris. –

Questions connexes