2012-11-30 42 views
4

比方說,我正在數據庫中存儲音頻文件,後來我想在我的應用程序中使用該BLOB或二進制文件。使用原始二進制數據使用src的HTML5

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

其中${sessionScope.user.music}返回從數據庫中檢索到的二進制數據。

是否有可能使用二進制數據而不是uri加載音頻標籤中的音頻文件?或路徑?

+1

讓我們這樣說吧。但是你的問題是什麼? –

+0

@BrianAgnew看起來我忘了放置最後的聲明,我已經更新了它。 – KyelJmD

+1

爲什麼你不能只使用像'src =「/ user/music」'這樣的url,並讓該URL響應音頻文件? – Esailija

回答

8

如內嵌圖像有點:

<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>,我絕不相信data:audio/mp3;base64, ... (或audio/ogg)將工作。它不在我的HTML5參考中。

對於編碼,請參閱JEditorPane with inline Image

+1

它也適用於音頻(剛剛測試過音頻/ ogg) –

+0

@HarloHolmes,我喜歡這個。 Firefox和IE? –

+0

firefox肯定。還沒有測試過IE ... –

0

則需要使用JavaScript來的二進制數據轉換爲字符串。請參考Post

+0

爲什麼我需要將原始二進制數據轉換爲字符串? – KyelJmD

+1

由於HTML不知道二進制文件...你必須在字符串 –

+0

中提供它,所以通過該字符串,它會將其作爲音頻文件讀取? – KyelJmD

1

我需要爲三維三維顯示內嵌大量(一些MB)的二進制數據。

這就是我想出了:

  1. 寫8位二進制數據轉換成PNG文件
  2. Base64編碼,導致運行長度壓縮PNG文件
  3. 使用<img src="data:image/png;base64,....">以包括進html5文件
  4. 創建適當維度的隱藏畫布並使用context.drawImage和context.getImageData提取最終存儲在Uint8ClampedArray中的二進制數據
  5. 計算所需的Float32Array(個),threejs從Uint8ClampedArray

我不知道,如果這個工程也提供二進制音樂數據,但問題並沒有提及音樂數據,它可能對他人有所幫助,像我一樣在這裏擱淺尋找將二進制數據包含到HTML5中的一般解決方案:-)

相關問題