【问题标题】:Play video in html video tag that is stored in the GAE blobstore python播放存储在 GAE blobstore python 中的 html 视频标签中的视频
【发布时间】:2013-04-25 01:19:42
【问题描述】:

我有一个简单的视频共享网站,可以上传视频并将它们作为 blobReferenceProperty() 存储在数据存储中。现在我正在查询该视频的数据存储区并尝试将其嵌入/播放到 html 5 视频标签中。看来我现在需要找到存储在 blobstore 中的视频的路径,因为 html 5 视频标签需要一个路径。

问题是从 blobstore 中查询的视频以 blob_key 的形式返回。有谁知道如何获取 blob_key 的路径,以便它可以由 html 5 视频标签播放。

class Videos(db.Model):
    videoID = db.IntegerProperty()
    content = blobstore.BlobReferenceProperty()

vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", v_id)
    for v in vids:
      vid_key = v.content

现在我想要 vid 密钥的路径,所以我可以把它放在 ????是

<video controls>
    <source src="????" type="video/mp4">
   <p>Your browser does not support the HTML5 video element.</p>
 </video>

有什么想法吗?

[编辑]

我已经有一个像这样的下载处理程序

class Play(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, vid_id): 
        vid_key = None
        vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", int(vid_id)) 
        for v in vids: 
            vid_key = v.content 
        if (vid_key == None): 
            self.error(404) 
        else: 
            self.send_blob(vid_key) 

现在我的代码全屏播放视频,我想切换它以播放嵌入在我网站中的 html 5 视频标签中的视频。在同一页面上有 cmets 和评级

【问题讨论】:

  • 您似乎将处理程序用作响应页面 - 因此,当您尝试获取 url 时,它会直接转到视频 url。尝试使用调用处理程序的单独响应页面。如果你有问题我可以尝试提供一个代码示例
  • 是的,我将其用作响应页面。但我认为这就是我想做的。而不是通过代码提供视频:self.send_blob(vid_key) - 我想设置一些变量,我们将其称为“路径”作为 blob_key 的路径。将它分离到另一个响应页面对我有什么帮助?
  • 我想通了。提供视频时,它给了我视频的网址。我获取了该 url 并在每个单独的视频 ID 中进行了替换,以动态地为 HTML 视频标签提供源。感谢您的所有帮助
  • 太棒了,很高兴你能够让它工作。
  • @ScottB 你能帮我解决一个very similar issue

标签: google-app-engine python-2.7 google-cloud-datastore html5-video blobstore


【解决方案1】:

您需要创建一个 BlobstoreDownloadHandler 来为 blob 提供服务。最简单的方法是通过 blobkey 的字符串表示形式在 url 中标识 blob 资源,即 mypath.com/blob/blobkey 然后您可以使用 Videos 模型中的 reference 属性轻松引用该 url。

要创建 BlobstoreDownloadHandler,您可以阅读文档:herehere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2015-07-19
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多