4

オーディオファイルをデータベースに保存していて、後でそのBLOBまたはバイナリをアプリケーションで使用したいとします。

<audio src ="${sessionScope.user.music}"> 

ここ${sessionScope.user.music}で、データベースから取得されたバイナリデータを返します。

URIの代わりにバイナリデータを使用して、オーディオタグにオーディオファイルをロードすることは可能でしょうか?またはパス?

4

3 に答える 3

9

インライン画像に少し似ています:

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/
f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67
QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g7
7ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7"
    width="16" height="14" alt="embedded folder icon">

これが機能する場合、 (または)が機能する<img>かどうかはわかりません。私のHTML5リファレンスにはありません。data:audio/mp3;base64, ...audio/ogg

エンコーディングについては、インライン画像を使用したJEditorPaneを参照してください。

于 2012-11-30T12:41:43.650 に答える
1

threejs 3Dディスプレイ用に大量(数MB)のバイナリデータをインライン化する必要がありました。

これは私が思いついたものです:

  1. 8ビットのバイナリデータをpngファイルに書き込みます
  2. 結果のランレングス圧縮pngファイルをbase64エンコードします
  3. <img src="data:image/png;base64,....">それをhtml5ファイルに含めるために使用します
  4. 適切なサイズの非表示のキャンバスを作成し、context.drawImageとcontext.getImageDataを使用して、最終的にUint8ClampedArrayに格納されるバイナリデータを抽出します
  5. そのUint8ClampedArrayからthreejsに必要なFloat32Arrayを計算します

これがバイナリ音楽データを提供するのにも役立つかどうかはわかりませんが、質問は音楽データについて言及していなかったので、HTML5にバイナリデータを含めるための一般的な解決策を探している私のようにここで立ち往生している他の人にとって役立つかもしれません:-)

于 2015-07-06T08:46:55.123 に答える
0

javascriptを使用してバイナリデータを文字列に変換する必要があります。投稿を参照してください

于 2012-11-30T12:29:51.670 に答える