0

GAE Java Web アプリケーションで、オーディオ ファイルのストリーミングを許可する URL を作成しようとしていますが、今のところ直接ダウンロードでしか機能しません。これは、「file_id」パラメーターで送信された BlobKey を使用して BlobStore からファイルをダウンロードするためのサーブレットのこれまでの様子です。

public void doGet(HttpServletRequest req, HttpServletResponse res) 
        throws IOException {

    BlobInfoFactory bif = new BlobInfoFactory();

    BlobKey blobKey = new BlobKey(req.getParameter("file_id"));
    String fileName = bif.loadBlobInfo(blobKey).getFilename();

    res.setContentType("text/plain");
    res.setHeader("Content-Disposition", "attachment; filename=" + fileName);

    blobstoreService.serve(blobKey, res);
}

サーブレットは次のような URL にマップされます: xxx.appspot.com/fileDownload?file_id=yyy

クライアント側 (ブラウザーまたはモバイル アプリケーション) でこの URL にアクセスして、オーディオ データを直接ダウンロードする代わりにストリーミングするにはどうすればよいですか? サーバー側、クライアント側のプロトコル (HTTP ではなく)、またはその両方にアクセスするには、変更する必要がありますか?

ありがとうございました!

4

1 に答える 1

2
  1. 特定のブラウザでサポートされているオーディオ形式を確認してください。あなたの最善の策はmp3オーディオでしょう。

  2. クライアント側で次の HTML スニペットを使用します。

    <audio controls> <source src="http://path/to/your/audio/file.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio>

  3. サーバーが音声ファイルをaudio/mpegコンテンツ タイプとして提供していることを確認します (また、ブロブのコンテンツは mp3 ファイルである必要があります)。

    res.setContentType("audio/mpeg");

  4. Content-Dispositionヘッダーを削除します。これは、ブラウザでファイルをローカル ディスクに保存する場合に使用されます。

于 2013-10-22T12:26:00.130 に答える