我正在尝试学习如何使用blobstore提供视频而不需要将所有屏幕视频视频,例如
这里我将视频导入为video_model
class ViewVideo(webapp.Reque...,blobstore_handlers.BlobstoreDownloadHandler):
def get(self):
video_id = self.request.get('video_id')
video_instance = None
if video_id:
video_instance = video_model().get_video_content(video_id)
self.response.headers['Content-Type'] = 'video/mp4'
self.send_blob(video_instance.content.key())
class Video(db.Model):
content = blobstore.BlobReferenceProperty()
title = db.StringProperty()
def get_video(self,video_id):
return Video.get_by_id(video_id)
def get_video_content(self,content):
query_str = "SELECT * FROM Video WHERE content =:content"
return db.GqlQuery(query_str,content=content).get()
如果video_id来自给定的网址,但正如你所看到的那样,我把它直接放在send_blob()函数中,当我测试它时,所有的屏幕只是为了看视频,我想知道我该如何服务来自我的应用程序的视频没有发生这种情况,我在想嵌入式HTML,但我无法弄清楚源代码是什么
任何帮助都将不胜感激
如果缺少回答问题的内容,我会对其进行编辑
答案 0 :(得分:0)
没有HTML5,这是一个棘手的混乱。 使用 HTML5,它变得简单&优雅。服务于用户浏览器,作为您所服务的任何页面的一部分,以下HTML(5)代码段:
<video width="320" height="240" controls>
<source src="/getmp4?video_id=whatever" type="video/mp4">
Your browser does not support the video tag: please upgrade it!
</video>
并使用ViewVideo
处理程序仅提供/getmp4
网址,而不是用户通过浏览器直接获取的网址。
320
,240
以及显示controls
的选项,当然都是可选的 - 因为更多的是whatever
用于视频ID! - )