2012-08-08 109 views
0

我只是想弄清楚如何使用blobstoreHTML5音頻。appengine和html5音頻

我的代碼只是稍微修改了工作代碼,所以它不需要進行重大更改。

class data(webapp2.RequestHandler): 
def get(self): 
    a = db.GqlQuery("SELECT * FROM UserPhoto") 
    blob = a[1].blob_key 


    self.redirect('/Serve/%s' % blob.key()) 



class ServeHandler(Handler, blobstore_handlers.BlobstoreDownloadHandler): 
def get(self, audio_key): 
    if not blobstore.get(audio_key): 
     self.error(404) 
    else: 
     self.send_blob(audio_key) 
     self.redirect('/music') 

class music(Handler): 
def get(self): 
    self.render("music.html") 

而這正是音頻將播放HTML:

<audio controls="controls"> 
<source src="/Serve/%s"/> 
Your browser does not support the audio element. 

,誤差

"GET /Serve/%s HTTP/1.1" 404 - 
+0

html src中有一個輕微的錯字,遺漏了引號,但不會導致錯誤 – tanky 2012-08-08 16:33:07

+0

html是真的指向/服務/%s還是隻是一個模板?另外你爲什麼要重定向到ServeHandler的/音樂?你可以發佈你的wsgi應用程序的配置來查看路線。數據中的重定向也很奇怪,您應該使用blob_key(來自UserPhoto?)來生成音樂播放器html。 – 2012-08-08 16:47:03

回答

3

你似乎沒有已經把實際的關鍵變量HTML。你只有/serve/%s這顯然是錯的 - Django模板甚至不使用Python字符串替換,更不用說你沒有給它任何東西來代替。

您需要將blob密鑰從get處理程序傳遞到模板,然後使用<source src="/Serve/{{ blob_key }}"/>來引用它。