2012-03-29 11 views
0

私は、Google App Engineのblobstoreにオーディオファイルを保存し、ブラウザで再生しようとしています。私が実行している問題は、ブラウザで取得しているデータが実際のmp3データであることです。私はブロブストアでmp3を再生するためのURLを得ることを期待していた。ですから、私の質問は、オーディオデータの代わりにBLOBを再生するためのURLを取得するためには何を変更する必要があるのでしょうか?Google Apps Engineのblobstoreからmp3データをAjax経由で取得する

ここに私のサーバーサイドハンドラがあります。

class ServeBlobHandler(blobstore_handlers.BlobstoreDownloadHandler): 
def get(self): 

    user = users.get_current_user() 
    query = db.GqlQuery("SELECT * FROM AudioData Where userId = :1", user.user_id()) 

    results = query.fetch(limit=300) 
    for dStoreEntry in results: 

     entityBlobInfo = dStoreEntry.audioBlob 

    self.send_blob(entityBlobInfo) 

これはクライアント側です。

$.ajax({ 
    url : '/serve_blob/audio/', 
    type : 'GET', 
    dataType : 'text', 
    success : function(data) { 
     alert('GET, audio data : \n '+ data); 
    } 
}); 

答えて

0

から現在データを取得しているページのURLは、 MP3のURLです。あなたはそれを再生するために何らかの種類のWebベースのプレーヤーを使用する必要があります。

+0

私はあなたが何を意味するのか分かりません。ブロブストアからデータを取得している場合、ページへのURLはありません。私が何かを逃していない限り。 – Justin

+0

@Justinすでに完了しているBLOBを処理するハンドラを作成する必要があります。そのハンドラのURLを入力すると、BLOBが返されます。 –

+0

ええ、それはあなたがURLが何になるかを決めるまでです。私たちは/ media/serve/のようなURLを使用するので、Googleのフロントエンドエッジキャッシングによってキャッシュすることができます。 –

0

Content-typeあなたのブラウザはmp3要求に対応していますか? GAEの管理ページに

If you don't specify a content type, the Blobstore will try to infer it from the 
file extension. If no content type can be determined, the newly created blob is 
assigned content type application/octet-stream 

移動し、コンテンツタイプは、あなたのmp3ファイルに割り当てられていたものを下に見てブロブビューアをチェックしてください。私はそれがapplication/octet-stream

ブロブストアのドキュメントをアップロードについて言う何を参照してくださいだ推測しています。

+0

content-typeは "audio/mp3"に設定されています。ファイル名も.mp3で終わるので、ブロブストアはどのタイプのデータがあるかを知る必要があります。 – Justin

+0

ChromeとFirefoxをテストし、コンテンツタイプが「audio/mpeg」に設定されている場合、mp3ファイルをネイティブに再生します。参照:http://www.w3schools.com/html5/song.mp3 –

+0

また、私は検索して、「オーディオ/ mp3」を提供するURLを見つけることができませんでした。ブラウザーでネイティブに再生できるように、コンテンツの種類を 'audio/mpeg'に設定する必要があります。 –

0

はJPlayerをゲット - http://www.jplayer.org/

そして、あなたの例では正常に動作する必要があります。私たちはJavaのappengineブロブストアでそれを使用しています。ブロブストアからのURLはjplayerで動作します。

BLOB URLにキャッシュヘッダーを設定すると、クエリパラメータを削除して各ストリームの配信コストを節約できます。

+0

私はこの時点でURLを持っていません、ただmp3ファイルのデータです。私が知りたいのは、URLを取得する方法です。それについての助けは素晴らしいだろう! – Justin

+0

ええと、上記の私のコメントを参照してください。それはあなたにBLOBを取得するためのURLを作ることです。 blobkeyをurl/media/serve/に入れ、そこからそれを読んでください。 –

関連する問題